Forum: Haus & Smart Home Heizung vermessen, ESPHome, Homeassistant, InfluxDB, Grafana


von Klaus H. (klahi)


Angehängte Dateien:

Lesenswert?

Ich vermute seit einiger Zeit, dass meine Heizanlage nicht optimal 
arbeitet. Manche Heizstränge fühlen sich wärmer an als andere ... Da 
hilft nur messen, aber wie?

Am Ende entstand ein Board mit 8 unabhängigen Kanälen zur Messung der 
Temperatur (DS18B20) und 2 Kanälen zur Messung von Strom mittels 
"Current-Transformers" (Stromzangen). Der Gedanke ist, damit gefahrlos 
den Schaltzustand von Pumpen zu erfassen.

Wenn schon, dann aber richtig. Jeder Messkanal hat einen eigenen 
Eingangsschutz, die Platine ist passend auf ein zu bearbeitendes 
Standardgehäuse dimensioniert und der ESP32-S3 (Arduino Nano ESP) kann 
mit ESPhome oder Micropython genutzt werden. Auch habe ich ordentliche 
Klemm-Anschlüsse zum leichten Wechsel der Sensoren vorgesehen. Hinzu 
kommt ein kleines on-Board Display zur Anzeige der gerade erfassten 
Werte.

Ich betreibe den Controller mit ESPHome und Homeassistant und zusätzlich 
mit InfluxDB und Grafana. Das ermöglicht eine Langzeitdatenaufnahme und 
spätere Auswertung. (Mit ESPHome ist auch MQTT möglich.)

Was würdet ihr bei gleicher Fragestellung noch messen wollen? Den 
Durchfluss durch ein Rohr zu messen wäre schön. Aber wie, ohne einen 
Sensor in das Rohr einzubauen? Ich hatte mir schon eine nicht-intrusive 
Durchflussmessung mit TOF-Sensoren überlegt. Das muss nicht sonderlich 
genau sein. Ist da jemand schon weiter?

Demnächst werde ich meine überzähligen Platinen einschließlich einiger 
essentieller Bauteile im Form Markt anbieten.

: Verschoben durch Moderator
von Roland P. (pram)


Lesenswert?

Was hast du für eine Heizung? Ich hab was ähnliches hier laufeb. Messe 
diverse Vorlauf/Rücklauftemperaturen und über die Viessmann 
Opto-Schnittstelle noch ein paar Daten. Demnächst kommt hoffentlich noch 
ein Impulsgeber für den Gaszähler

Gruß Roland

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Klaus H. schrieb:
> Am Ende entstand ein Board

Ohne Schaltplan und Layout hat das in diesem Thread nichts zu suchen! 
Ach ja, im Titel des Forums steht auch noch "Code".

von Harald K. (kirnbichler)


Lesenswert?

Auch wenn hier nebenan fleißg über das Entrosten von Funkgeräten 
berichtet wird -- Projekte & Code ist nicht die Ecke zum Präsentieren 
von "Problemen und Fragen", sondern zum Vorstellen (weitestgehend) 
fertiger Projekte, mit Schaltplan und Quelltext (so vorhanden).

Das hier passt nach "Haus & Hof" oder vielleicht nach "Zeigt her Eure 
Basteleien".

von Rüdiger B. (rbruns)


Lesenswert?

Suche nach Hydraulischen Abgleich. Geht auch durch drosseln der 
Rücklaufdrossel in den Heizkörpern mit der höchsten Rücklauftemperatur.

von Sebastian W. (wangnick)


Lesenswert?

Klaus H. schrieb:
> Was würdet ihr bei gleicher Fragestellung noch messen wollen? Den
> Durchfluss durch ein Rohr zu messen wäre schön.

Bei meiner Ölheizung im EFH hatte ich über Viessmann Optolink die 
Anlagenzustände erfasst, und parallel dazu den Pegel im Öltank über 
Ultraschall gemessen. Auf der Basis der Betriebszeiten und des über den 
Ölverbrauch im Tank kalibrierten Düsendurchsatzes konnte ich grob den 
Wärmebedarf des Hauses je nach Außentemperatur ermitteln. Später kam 
noch die Messung der Heizkreis-VL/RL-Temperaturen dazu.

Diesen Sommer habe ich Ölheizung und 300l Warmwasserspeicher durch eine 
Monoblock-Wärmepumpe mit 600l Hybridspeicher und Frischwasserstation 
ersetzen lassen. Dabei habe ich sowohl im Sekundärkreis der Wärmepumpe 
zwischen Außeneinheit und Inneneinheit als auch im Heizkreis zwischen 
Mischer und Heizkörpern Wärmemengenzähler (Zenner C5-IUF) einbauen 
lassen, und frage diese alle 10s über Kabel-Mbus ab. Die ins Warmwasser 
gelieferte Wärmemenge messe ich mit einem Impulszähler im 
Kaltwasserzulauf und zwei DS18B20 in Kaltwasserzulauf und 
Warmwasserlieferung. Damit habe ich die thermischen Leistungsströme auch 
unabhängig von den (reichlichen) Messdaten der neuen Geräte recht gut im 
Griff.

Rückblickend hätte ich den Wärmemengenzähler im Heizkreis wohl schon 
früher einbauen lassen sollen. Denn die jetzt eingebaute 10kW-Wärmepumpe 
ist ziemlich unterfordert, weil das Haus bei AT -5°C nur ca. 5½kW 
abnimmt.

Mit einem Wärmemengenzähler im Heizkreis lässt sich zudem die Heizkurve 
gut einstellen. Denn der Zähler misst natürlich auch den Volumenstrom. 
Man öffnet alle Thermostaten einmal voll, notiert den sich dabei 
einstellenden maximalen Volumenstrom, stellt dann die Thermostaten 
wieder auf die gewünschte Raumtemperatur, und kann anhand der dann 
erfolgenden Drosselung des Volumenstroms abschätzen, wie weit die 
Vorlauftemperatur über dem Nötigen liegt.

LG, Sebastian

von Klaus H. (klahi)


Lesenswert?

Roland P. schrieb:
> Was hast du für eine Heizung? Ich hab was ähnliches hier laufeb. Messe
> diverse Vorlauf/Rücklauftemperaturen und über die Viessmann
> Opto-Schnittstelle noch ein paar Daten. Demnächst kommt hoffentlich noch
> ein Impulsgeber für den Gaszähler

Ich betreibe eine Ölheizung mit 5 Strängen "Einrohrheizung" mit jeweils 
3 bis 5 Heizkörpern in einem Strang. Ein hydraulischer Abgleich ist 
beinahe unmöglich, aber messen erzeugt vielleicht mehr Erkenntnis.

von Klaus H. (klahi)


Lesenswert?

Manfred P. schrieb:
> ...
> Ohne Schaltplan und Layout hat das in diesem Thread nichts zu suchen!
> Ach ja, im Titel des Forums steht auch noch "Code".

Harald K. schrieb:
> ...
> Das hier passt nach "Haus & Hof" oder vielleicht nach "Zeigt her Eure
> Basteleien".

Da habe ich wohl im falschen Thread eingeordnet. Jetzt wurde es ja 
umgezogen :-).

von Klaus H. (klahi)


Lesenswert?

Rüdiger B. schrieb:
> Suche nach Hydraulischen Abgleich. Geht auch durch drosseln der
> Rücklaufdrossel in den Heizkörpern mit der höchsten Rücklauftemperatur.

Bei mir ist es leider eine Einrohrheizung. Dort kann man an manchen 
Heizkörpern den Anteil des Durchfluss durch den Heizkörper einstellen. 
Ich habe aber zunächst das Problem, dass die Stränge im "statischen 
Zustand" wohl unterschiedlich durchflossen werden.

von Klaus H. (klahi)


Lesenswert?

Sebastian W. schrieb:
> ...
> Rückblickend hätte ich den Wärmemengenzähler im Heizkreis wohl schon
> früher einbauen lassen sollen. Denn die jetzt eingebaute 10kW-Wärmepumpe
> ist ziemlich unterfordert, weil das Haus bei AT -5°C nur ca. 5½kW
> abnimmt.
> ...

Ein Wärmemengenzähler wäre gut, doch bräuchte ich einen Zähler je 
Strang. Und ein Wärmemengenzähler misst den Volumenstrom (Durchfluss) 
und die Differenztemperatur zwischen Hin- und Rücklauf. Eine 
nicht-intrusive Messung des Durchfluss wäre interessant. Ich vermute 
aber, das ist (heute) nicht möglich.

von Rainer W. (rawi)


Lesenswert?

Klaus H. schrieb:
> Am Ende entstand ein Board mit 8 unabhängigen Kanälen zur Messung der
> Temperatur (DS18B20) ...
> ...
> Wenn schon, dann aber richtig. Jeder Messkanal hat einen eigenen
> Eingangsschutz,

Warum brauchst du für busfähige Sensoren jeweils individuellen 
Eingangsschutz, wenn doch ein Klemmblock und EIN gemeinsamer Eingang 
reicht?
Je nach räumlicher Anordnung in der Anlage können die Sensoren auch auf 
einem Kabel aufgereiht sein.

: Bearbeitet durch User
von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Klaus H. schrieb:

> Ein Wärmemengenzähler wäre gut, doch bräuchte ich einen Zähler je
> Strang. Und ein Wärmemengenzähler misst den Volumenstrom (Durchfluss)
> und die Differenztemperatur zwischen Hin- und Rücklauf. Eine
> nicht-intrusive Messung des Durchfluss wäre interessant. Ich vermute
> aber, das ist (heute) nicht möglich.

Möglich ist alles...

https://de.wikipedia.org/wiki/Ultraschall-Durchflussmesser#Clamp-On-Durchflussmesser

Aber ob es das billig genug gibt, dass man das privat in jeden Strang 
einbauen will, weiss ich nicht.

PS: suche mal auf Aliexpress nach "TUF-2000M" ob das was taugt.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Klaus H. schrieb:
> Demnächst werde ich meine überzähligen Platinen einschließlich einiger
> essentieller Bauteile im Form Markt anbieten.

Neben dem Angebot im Markt, wäre eine Veröffentlichung von Schaltung und 
Board sicherlich für einige sehr nützlich. Der Aufbau sieht auf den 
ersten Blick sehr ordentlich aus.

von Klaus H. (klahi)


Lesenswert?

Rainer W. schrieb:
>
> Warum brauchst du für busfähige Sensoren jeweils individuellen
> Eingangsschutz, wenn doch ein Klemmblock und EIN gemeinsamer Eingang
> reicht?
> Je nach räumlicher Anordnung in der Anlage können die Sensoren auch auf
> einem Kabel aufgereiht sein.

Hier gibt es zweieinhalb Gründe:
1. Die Zuverlässigkeit der Linien oder Sternverkabelung ist mit vielen 
Sensoren mäßig. Man muss nur die vielen Posts zu dem Thema im Internet 
lesen. Dallas/Analog Devices beschreibt in der Abhandlung [Guidelines 
for Reliable Long Line 1-Wire 
Networks](https://www.analog.com/en/resources/technical-articles/guidelines-for-reliable-long-line-1wire-networks.html) 
die vielen beeinflussenden Parameter. Da ist es am sichersten je GPIO 
einen Kanal zu haben, das reduziert die nicht beeinflussbaren Parameter. 
Der Ausfall eines Sensors kann bei BUS-Verkabelung zum Ausfall aller 
Sensoren führen.
Und noch ein halbes Argument dazu. Ich habe festgestellt, dass die 
Messwerte der Sensoren bis zu 1,5 K voneinander abweichen. Meine 
Vermutung ist, dass in manchen Kabelsensoren mangelhafte Kopien der 
DS18B20 verbaut sind. Ob diese Sensoren beim onewire-Protokoll sich nach 
Datenblatt verhalten? Im Internet wird bezüglich der messbaren 
Stromaufnahme von deutlichen Unterschieden berichtet.

2. Ich halte es für wenig komfortabel, wenn die "Adressen" der DS18B20 
nach jeder Änderung der physikalischen Zuordnung in der Konfiguration 
nachgetragen werden müssen. Noch schlimmer, vor der Nutzung muss die 
Adresse jedes Sensors bekannt sein oder ermittelt werden. Ein Beispiel 
aus der Praxis: Das Kabel zu einem Messpunkt ist zu kurz. Schnell 
tausche ich gegen einen Sensor mit längerem Kabel. Fertig, es ist kein 
Nachziehen der Konfiguration notwendig.

von Klaus H. (klahi)


Lesenswert?

Nikolaus S. schrieb:
> PS: suche mal auf Aliexpress nach "TUF-2000M" ob das was taugt.

Danke für den Hinweis.

von Klaus H. (klahi)


Lesenswert?

Joe G. schrieb:
> Neben dem Angebot im Markt, wäre eine Veröffentlichung von Schaltung und
> Board sicherlich für einige sehr nützlich. Der Aufbau sieht auf den
> ersten Blick sehr ordentlich aus.

Die Unterlagen werden nach Fertigstellung auf Github veröffentlicht. 
Derzeit arbeite ich an einer Version 2 mit kleineren Veränderungen 
gegenüber der Version 1.

Mit diesem Beitrag hatte ich auf weiteren Input gehofft, was denn andere 
potenzielle Anwender für ihre Messanordnung noch gerne verfügbar hätten.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Klaus H. schrieb:
> Mit diesem Beitrag hatte ich auf weiteren Input gehofft, was denn andere
> potenzielle Anwender für ihre Messanordnung noch gerne verfügbar hätten.

gerne

8 Temperatur- und zwei Stromsensoren (Pumpen) sind schon recht nützlich. 
Bei dieser Hydraulikvariante sind oft noch zwei Mischer verbaut. Es wäre 
also nützlich auch noch den Mischerzustand über 4 IO’s (zwei pro 
Mischer, Auf, Zu) welche 230V vertragen, einlesen zu können.

von Klaus H. (klahi)


Lesenswert?

Joe G. schrieb:
> ... über 4 IO’s ... welche 230V vertragen, einlesen zu können.

Gedanklich sah ich das auch schon. Auf der Leiterkarte möchte ich keine 
Netzspannung haben. Nicht jeder ist Elektrotechniker und verhält sich 
entsprechend. daher auch die "Current Transformers". Für etwa 10 Euro je 
Transformator ist man dabei und die Netzspannung bleibt außerhalb.

Soweit ich weiß, fahren die Mischer in Position und verbleiben dann 
dort. D.h. man hat nur eine Spannung anliegen oder Strom fließen, 
während der Mischer neu positioniert. Ist das richtig?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ja, das ist korrekt. Der Mischer läuft immer nur während er 
positioniert. Ist die Position erreicht, wird die Spannung abgeschaltet. 
Die vier IO wären trotzdem sinvoll. Der jeweilige Optokoppler kann ja 
außerhalb deiner Platine positioniert werden. So bleiben die 230V 
draußen.

von Rainer W. (rawi)


Lesenswert?

Klaus H. schrieb:

> Die Zuverlässigkeit der Linien oder Sternverkabelung ist mit vielen
> Sensoren mäßig.
Es kommt natürlich auf Anzahl der Sensoren, Kabellängen und 
Kabelkapazität an. Sternverkabelung ist da eher ungünstig, weil sich die 
Kabelkapazitäten addieren.

> Ich halte es für wenig komfortabel, wenn die "Adressen" der DS18B20 nach
> jeder Änderung der physikalischen Zuordnung in der Konfiguration
> nachgetragen werden müssen.

Müssen sie ja nicht, falls du die Alarmfunktion des DS18B20 nicht 
verwendest.

Bevor du einen Sensor einbaust, schreibst du die Kennung der Messstelle 
in sein EEPROM. Deine Software bezieht sich dann auf diese Kennung und 
nicht auf den 64 Bit ROM-Code. Der Sensor trägt die Information über 
seinen Einbauort und bei Tausch musst du nur die Messstellenkennung im 
Sensor eintragen.

von Klaus H. (klahi)


Lesenswert?

Rainer W. schrieb:
> Bevor du einen Sensor einbaust, schreibst du die Kennung der Messstelle
> in sein EEPROM. Deine Software bezieht sich dann auf diese Kennung und
> nicht auf den 64 Bit ROM-Code. Der Sensor trägt die Information über
> seinen Einbauort und bei Tausch musst du nur die Messstellenkennung im
> Sensor eintragen.

Das wusste ich nicht. Mit welcher Software kann ich die Kennung der 
Messstelle in den Sensoren konfigurieren und welche Software kann die 
Kennung anzeigen bzw. verwenden?

Was brauche ich dazu an besonderer Hardware?

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Rainer W. schrieb:
> Müssen sie ja nicht, falls du die Alarmfunktion des DS18B20 nicht
> verwendest.

Gute Idee! Darauf bin ich bisher auch noch nicht gekommen. Ich habe es 
gleich mal probiert...
1
import machine
2
import onewire
3
import ds18x20
4
import time
5
6
# Pin-Definition für den DS18B20 
7
datapin = machine.Pin(15)
8
9
# Initialisierung des 1-Wire-Busses und des DS18B20
10
ow = onewire.OneWire(datapin)
11
ds = ds18x20.DS18X20(ow)
12
13
# Geräte suchen (kann mehrere DS18B20-Sensoren auf einem Bus geben)
14
roms = ds.scan()
15
if not roms:
16
    print("Kein DS18B20 gefunden!")
17
    raise SystemExit
18
19
print("Gefundene Sensoren:", roms)
20
21
# Funktion zum Schreiben und Lesen von Alarmwerten
22
def write_read_alarm(rom, th, tl):
23
    # Schreiben der Alarmwerte
24
    print(f"Schreibe Alarmwerte: TH={th}, TL={tl}")
25
    ow.reset()
26
    ow.select_rom(rom)
27
    ow.writebyte(0x4E)  # Write Scratchpad Befehl
28
    ow.writebyte(th)    # TH-Alarmwert
29
    ow.writebyte(tl)    # TL-Alarmwert
30
    ow.writebyte(0x7F)  # Konfiguration (0x7F für 12 Bit Auflösung)
31
    
32
    time.sleep(0.1)
33
    
34
    # Lesen des Scratchpads zur Überprüfung
35
    ow.reset()
36
    ow.select_rom(rom)
37
    ow.writebyte(0xBE)  # Read Scratchpad Befehl
38
    data = bytearray(9)
39
    for i in range(9):
40
        data[i] = ow.readbyte()  # Byteweise lesen
41
    print("Gelesene Scratchpad-Daten:", list(data))
42
    return data
43
44
# main
45
for rom in roms:
46
    print("Bearbeite Sensor:", rom)
47
    
48
    # Beispiel: Alarmwerte schreiben und auslesen
49
    scratchpad_data = write_read_alarm(rom, th=25, tl=20)
50
    
51
    # Temperaturmessung starten
52
    print("Starte Temperaturmessung...")
53
    ds.convert_temp()
54
    time.sleep(1)  # Messzeit warten
55
    
56
    # Temperatur auslesen
57
    temp = ds.read_temp(rom)
58
    print(f"Gemessene Temperatur: {temp:.2f}°C")

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.