Vaillant Arotherm Plus und Takte

Aktuell sind es draußen ca. 10 Grad. Da ist es bis zur Abschaltgrenze nicht weit. Da die untere Modulationsgrenze unserer Wärmepumpe bei 30% liegt und auch das aktuell zu viel Wärmeleistung ist, geht die halt mehrfach am Tag an und aus: sie taktet. Nicht schlimm, aber muss ja nicht sein. Wenn es kälter ist, läuft sie ganz brav durch.

Im Home Assistant sieht das dann so aus:

 

Bild 14.02.24 um 17.30.

Die An-Blöcke (Lila) sind je ca 45-60 Minuten lang. Danach schaltet sie für ungefähr einen Stunde ab (dunkel-blau). Hell-blau ist Warmwasserbereitung.

Hierzu gibt es von Voßwinkel ein Erklärvideo: klick

Heute vormittag habe ich die Konfiguration „Kompr.start Heizen ab“ ausprobiert. Die Vaillant-Werkseinstellung ist -60 Minuten.

Ich habe diesen Wert auf das Maximum von -100 Minuten geändert. Das wird im Home Assistant sofort sichtbar: die Aus-Zeiten haben sich deutlich verlängert und schwanken jetzt um die 1h 45min.

Gleichzeitig schwanken jetzt die Vor- & Rücklauftemperaturen etwas mehr. Links kann man im Diagramm sehen, daß die mit kleinen Wellen fast synchron liefen. Rechts sind die Wellenberge höher und gehen jetzt etwas weiter auseinander:

Bild 14.02.24 um 17.32.

Was ja logisch ist, denn die Arotherm wartet jetzt länger auf das Nachheizen. Ich glaube nicht, daß diese Schwankungen bei einer Fußbodenheizung irgendeinen sichtbaren Effekt haben, die verschwinden komplett in der Trägheit. Aber warten wir mal ab.

Vaillant Wärmepumpen Kram

Haustechnik Voßwinkel erklärt trotz Männergrippe wann und warum es zum Taken kommen kann:

Eine sehr ruhige und gut verständliche Erklärung, ich hätte mir nur mal einen offenen Speicher gewünscht:

Zahlen Daten Fakten:

Man kann sich fragen, warum ein großer Hersteller wie Vaillant sich nicht genauso viel Mühe gibt, seine Produkte zu erklären.

Im eBusD bekommt man die gemesse und nicht die genormte COP geliefert, nicht die Arbeitszahlen; diese muss man sich selber ausrechnen.

Home Assistant, Aranet 4 und CO2

Sensoren für Temperatur und Luftfeuchtigkeit gibt es wie Sand am Meer. Feinstaub ist schon seltener, gibt es aber in bezahlbar bei Ikea als Vindstyrka.

Der lässt sich völlig problemlos über Zigbee in Home Assistant einbinden und bekommt sogar seine SW-Updates. Alles prima. Hier gibt es eine ausführliche Diskussion und auch Bilder vom Inneren des Gerätes.

Bildschirmfoto 2024-01-24 um 08.55.30.

Schade ist, daß man die TVOC-Werte nicht so einfach rausbekommt, aber gibt es aber schon Ansätze. Aktuell werden die nur als Trend auf dem Display angezeigt, aber nicht als Zahl über die Schnittstelle exportiert. 

Was die Sensoren aber leider allesamt nicht messen, ist der CO2 Gehalt. Da wird die Auswahl richtig klein. Es gibt einige bezahlbare, die haben aber leider allesamt keine brauchbare Schnittstelle; entweder einfach gar keine, oder die schreiben die Werte auf seine SD-Karte die man dann rausnehmen kann. Das ist vielleicht für Excel-Nerds brauchbar, aber nicht für Netzwerker.

Ich habe mir einen Aranet 4 gekauft. Leider etwas teuer, macht aber einen sehr guten Eindruck:

Und der Sensor ist (glaube ich) mein erstes Produkt überhaupt, welches in Lettland hergestellt wurde:

Braucht keine Cloud, keine App, … Die App braucht man nur für die Ersteinrichtung des Gerätes: aktuelle Firmware drauf und das Bluetooth einrichten. Danach kann die App wieder runter, die App will auch keinen Cloud-Account einrichten oder ähnlichen Unfug veranstalten.

Bluetooth ist für Smarthome etwas unüblich und die Reichweite ist auch nicht so toll, aber die ganzen Shellys haben alle einen eingebauten Bluetooth-Proxy, damit ist das ganze Haus Bluetooth versorgt.

Home Assistant hat sogar eine Aranet Integration:

Bildschirmfoto 2024-01-24 um 09.06.32.

 

Was ich nur komisch finde, sind die unterschiedlichen Werte. Stellt man den Vindstyrka und den Aranet direkt nebeneinander, messen die deutlich unterschiedliche Luftfeuchtigkeiten. Stellt sich jetzt die Frage, welcher von beiden denn wohl recht hat.

Haben wir jetzt 43% oder 51% Luftfeuchtigkeit? Die Aranet-Leute machen recht genaue Angabe zu Messgenauigkeit, Auflösung, … ich würde daher zum Aranet tendieren, aber wer weiß? Wer viel misst, misst Mist.

Jetzt fehlt noch eine Automatisierung im Home Assistant, die bei zu hohen CO2 oder Feinstaub-Werten die Lüftungsanlage hochdreht und für mehr Frischluft sorgt.

Vaillant Recovair 275 aus Home Assistant steuern

Für die Steuerung der Vaillant Recovair 275 aus dem Home Assistant heraus, bietet sich eine Hardware-Lösung an. Die Recovair hat verschiedene Eingänge:

Leider ist die Auswahl an potential-freien Relais bei Shelly sehr begrenzt, nämlich genau eines: Shelly Plus 1.

Das Relais lässt sich dafür mit einem Steckernetzteil betreiben (praktisch und sicher):

Wenn man am Shelly die beiden Input + Output Anschlüsse benutzt um an der Recovair am Port X11 einen Kontakt zwischen 0 und H herzustellen, hat man schon alles was man braucht:

Na gut, es ist nur ein 2-Stufen-Schalter (offen und 0 auf H aber nicht 0 auf D). Dafür könnte man ein zweites Relais benutzen, dann muss man nur sicherstellen, daß nicht beide gleichzeitig aktiv sind. Aber die Lüftungsstufe High aktivierbar zu machen reicht mir. 0 auf D ist ja ohnehin das normale Tagesprogramm, welches die Automatik meistens ohnehin ansteuert.

Im Home Assistant geht das über die normale Shelly-Integration und sieht dann so aus:

Aktiviert man den Schalter, aktiviert man den High-Betrieb. Schaltet man ihn aus, geht das Gerät zurück in was auch immer man programmiert hat und sonst jetzt gerade aktiv wäre.

Damit der High-Modus nicht tagelang aktiv bleibt, gibt es noch eine Automatisierung im Home Assistant, die nach drei Stunden den Schalter wieder aufhebt:

Damit ein frisch gestarteter Shelly (Firmware Update, …) den High-Modus nicht versehentlich aktiviert, sollte man im Shelly noch die Action on power auf OFF setzen:

 

eBusD und Vaillant Recovair 275

Die Vaillant Recovair 275 ist etwas eigenartig. An den Sensocomfort lässt sie sich nicht anbinden, obwohl die ein eBus-Gerät ist. Aus dem Installationshandbuch:

Das Sensocomfort-Display bleibt einfach dunkel, wenn man es trotzdem probiert. Schade, das original Bedienpanel ist schon ziemlich rudimentär.

Also muss wieder der eBus-Adapter ran, der vertragt sich nämlich mit der Recovair 275, auch parallel mit dem Bediengerät. Der Anschluss ist einfach, der eBus ist extern (rechts unten am Gerät) rausgeführt, dort wird auch die Fernbedienung angeschlossen:

Den Adapter kann man einfach parallel mit auflegen.

Das eBus Addon für den Home Assistant kann leider nicht mit zwei Adaptern umgehen, das ist wohl zu sehr Nische. Also kommt ein neuer eBusD auf den PiHole mit drauf und postet von dort auf dem Home Assistant MQTT-Broker. Angebunden wird der eBus-Adapter über Wifi.

Die Konfiguration sieht dann so aus:

# /etc/default/ebusd:
# config file for ebusd service.
# Options to pass to ebusd (run "ebusd -?" for more info):
EBUSD_OPTS="--latency=10 --scanconfig --port=8888 --device=ens:192.168.0.123:9999 --configpath=/home/bla/ebusd-configuration/ebusd-2.1.x/de --mqttint=/etc/ebusd/mqtt-hassio.cfg --mqttjson --mqtthost 192.168.0.999 --mqttport 1883 --mqtttopic=recovair --mqttvar='area=recovair' —mqttuser=user —mqttpass=password --mqttvar=filter-direction=r|u| --log=all:notice --log=update:error"

Der eBusD findet dann zwei Geräte auf dem Bus: die Recovair (ID=WTW04) und das Bedienpanel (ID=VAI00). Dafür brauchen wir zwei CSV-Dateien. Insbesondere das FHEM-und das Loxone-Forum war hier sehr hilfreich. Dort finden sich verschiedene Versionen für verschiedene Recovair-Modelle. Nach etwas basteln und testen sind diese beiden Dateien entstanden:

Fernbedienung 15.vai00.csv:

# Before constructing the variable replacements, the messages and fields can optionally be filtered in order to use
# type (r[1-9];w;u),circuit,name,[comment],[QQ],ZZ,PBSB,[ID],field1,part (m/s),datatypes/templates,divider/values,unit,comment
#,recov,RecoVair 275,,,,,,,,,,,
# ##### Generell #####,,,,,,,,,,,,,
*r,,,,,,B509,0D,,,,,,
*w,,,,,,B509,0F,,,,,,
r;w,,Lueftungsstufe,Lueftungsstufe,,,,2400,,,UCH,1=Tag;2=Aus;3=Auto;5=Nacht,,
r;w,,Lueftung_HI,Lueftung_HI,,,,5800,,,BCD:2,,,
r,,Uhrzeit,Uhrzeit,,,,2C00,,,VTI,,,
#

Für die Recovair 275 c0.wtw04.csv:

# type (r[1-9] w u ),circuit,name,[comment],[QQ],ZZ,PBSB,[ID],field1,part (m/s),datatypes/templates,divider/values,unit,comment
#,recov,RecoVair 275,,,,,,,,,,,
############ Luftvolumen################,,,,,,,,,,,,,
*r,,,,,,B509,0D,,,,,,
*w,,,,,,B509,0E,,,,,,
w,,Lueftung = 50m³/h,Lueftung = 50m³/h,,,,1500a600,,,,,,
w,,Lueftung = 55m³/h,Lueftung = 55m³/h,,,,1500b700,,,,,,
w,,Lueftung = 60m³/h,Lueftung = 60m³/h,,,,1500c800,,,,,,
w,,Lueftung = 65m³/h,Lueftung = 65m³/h,,,,1500d800,,,,,,
w,,Lueftung = 70m³/h,Lueftung = 70m³/h,,,,1500e900,,,,,,
w,,Lueftung = 75m³/h,Lueftung = 75m³/h,,,,1500fa00,,,,,,
w,,Lueftung = 80m³/h,Lueftung = 80m³/h,,,,15000a01,,,,,,
w,,Lueftung = 85m³/h,Lueftung = 85m³/h,,,,15001b01,,,,,,
w,,Lueftung = 90m³/h,Lueftung = 90m³/h,,,,15002c01,,,,,,
w,,Lueftung = 95m³/h,Lueftung = 95m³/h,,,,15003c01,,,,,,
w,,Lueftung = 100m³/h,Lueftung = 100m³/h,,,,15004d01,,,,,,
w,,Lueftung = 105m³/h,Lueftung = 105m³/h,,,,15005e01,,,,,,
w,,Lueftung = 110m³/h,Lueftung = 110m³/h,,,,15006e01,,,,,,
w,,Lueftung = 115m³/h,Lueftung = 115m³/h,,,,15007f01,,,,,,
w,,Lueftung = 120m³/h,Lueftung = 120m³/h,,,,15009001,,,,,,
w,,Lueftung = 125m³/h,Lueftung = 125m³/h,,,,1500a001,,,,,,
w,,Lueftung = 130m³/h,Lueftung = 130m³/h,,,,1500b101,,,,,,
w,,Lueftung = 135m³/h,Lueftung = 135m³/h,,,,1500c201,,,,,,
w,,Lueftung = 140m³/h,Lueftung = 140m³/h,,,,1500d201,,,,,,
w,,Lueftung = 145m³/h,Lueftung = 145m³/h,,,,1500e301,,,,,,
w,,Lueftung = 150m³/h,Lueftung = 150m³/h,,,,1500f401,,,,,,
w,,Lueftung = 155m³/h,Lueftung = 155m³/h,,,,15000402,,,,,,
w,,Lueftung = 160m³/h,Lueftung = 160m³/h,,,,15001502,,,,,,
w,,Lueftung = 165m³/h,Lueftung = 165m³/h,,,,15002602,,,,,,
w,,Lueftung = 170m³/h,Lueftung = 170m³/h,,,,15003602,,,,,,
w,,Lueftung = 175m³/h,Lueftung = 175m³/h,,,,15004702,,,,,,
w,,Lueftung = 180m³/h,Lueftung = 180m³/h,,,,15005802,,,,,,
w,,Lueftung = 185m³/h,Lueftung = 185m³/h,,,,15006802,,,,,,
w,,Lueftung = 190m³/h,Lueftung = 190m³/h,,,,15007902,,,,,,
w,,Lueftung = 195m³/h,Lueftung = 195m³/h,,,,15008a02,,,,,,
w,,Lueftung = 200m³/h,Lueftung = 200m³/h,,,,15009a02,,,,,,
w,,Lueftung = 205m³/h,Lueftung = 205m³/h,,,,1500ab02,,,,,,
w,,Lueftung = 210m³/h,Lueftung = 210m³/h,,,,1500bc02,,,,,,
w,,Lueftung = 215m³/h,Lueftung = 215m³/h,,,,1500cc02,,,,,,
w,,Lueftung = 220m³/h,Lueftung = 220m³/h,,,,1500dd02,,,,,,
w,,Lueftung = 225m³/h,Lueftung = 225m³/h,,,,1500ee02,,,,,,
w,,Lueftung = 230m³/h,Lueftung = 230m³/h,,,,1500fe02,,,,,,
w,,Lueftung = 235m³/h,Lueftung = 235m³/h,,,,15000f03,,,,,,
w,,Lueftung = 240m³/h,Lueftung = 240m³/h,,,,15002003,,,,,,
w,,Lueftung = 245m³/h,Lueftung = 245m³/h,,,,15003003,,,,,,
w,,Lueftung = 250m³/h,Lueftung = 250m³/h,,,,15004103,,,,,,
w,,Lueftung = 255m³/h,Lueftung = 255m³/h,,,,15005203,,,,,,
w,,Lueftung = 260m³/h,Lueftung = 260m³/h,,,,15006203,,,,,,
w,,Lueftung = 265m³/h,Lueftung = 265m³/h,,,,15007303,,,,,,
w,,Lueftung = 270m³/h,Lueftung = 270m³/h,,,,15008403,,,,,,
w,,Lueftung = 275m³/h,Lueftung = 275m³/h,,,,15009403,,,,,,
w,,Lueftung = 280m³/h,Lueftung = 280m³/h,,,,1500a503,,,,,,
w,,Lueftung = 285m³/h,Lueftung = 285m³/h,,,,1500b603,,,,,,
w,,Lueftung = 290m³/h,Lueftung = 290m³/h,,,,1500c603,,,,,,
w,,Lueftung = 295m³/h,Lueftung = 295m³/h,,,,1500d703,,,,,,
w,,Lueftung = 300m³/h,Lueftung = 300m³/h,,,,1500e803,,,,,,
r;w,,Soll-Volumenstromkorrektur,Soll-Volumenstromkorrektur,,,,2000,,,D1B,,,
r9;w,,Waermerueckgewinnung,Waermerueckgewinnung,,,,0a00,,,UCH,1=EIN;2=AUS,,
*r,,,,,,B509,29,,,IGN:2,,,
r1;w,,TempInletAir_SAI,Temperatur Zuluft,,,,0100,,,temp,,,
r1;w,,TempOutsideAir_SAO,Temperatur Aussenluft,,,,0200,,,temp,,,
r1;w,,TempWasteAir_EAI,Temperatur Abluft,,,,0300,,,temp,,,
r1;w,,TempOutgoingAir_EAO,Temperatur Fortluft,,,,0400,,,temp,,,
r1;w,,Roomtemp,Zimmertemperatur,,,,0000,,,temp,,,
r;w,,Unterdruckschutz,Unterdruckschutz,,,,4700,,,UCH,1=AN;0=AUS,,
r5;w,,Ertrag_Gesamt_kWh,Ertrag_Gesamt_kWh,,,,4d00,,,UIN,,,
r5;w,,Heatrecovery,Wärmerueckgewinnung,,,,8c03,,,UCH,0=auto;1=on;2=off,,Aktuelle Uhrzeit
r;w,,Desiredtemp,Wunschtemp,,,,140e,,,temp,,°C,
*r,,,,,,B509,29,,,,,,r9,,BypassStellung,BypassStellung,,,,0900,,,IGN:2;percent0,,,

Die Dateien:

Lässt man den eBusD eine Weile laufen, sammeln sich einige relevante Werte an:

$ebusctl -p 8888 find -d -r -w -p
broadcast queryexistence = (empty for 31fe07fe00 / )
broadcast signoflife = (empty for 10fe07ff00 / )
scan.15 = Vaillant;VAI00;0125;8901
scan.15 id = 21;11;24;0020015281;0907;005605;N3
scan.c0 = Vaillant;WTW04;0127;9001
scan.c0 id = 21;11;33;0010005354;0006;005593;N5
vai00 Lueftung_HI = 0
vai00 Lueftungsstufe = Auto
vai00 Uhrzeit = 19:59:11
wtw04 BypassStellung = 0
wtw04 Ertrag_Gesamt_kWh = 54160
wtw04 Lueftung = 70m³/h = (empty for 10c0b509050e1500e900 / 00)
wtw04 Roomtemp = 17.94
wtw04 Soll-Volumenstromkorrektur = 5
wtw04 TempInletAir_SAI = 7.50
wtw04 TempOutgoingAir_EAO = 11.88
wtw04 TempOutsideAir_SAO = 16.38
wtw04 TempWasteAir_EAI = 17.56
wtw04 Unterdruckschutz = AN
wtw04 Waermerueckgewinnung = EIN

Das kann dann in Home Assistant so aussehen:

Die Messwerte sind etwas daneben; die Thermometer sind halt im Gerät nahe am Wärmetauscher verbaut. Wenn die Frischluft bis dahin gekommen ist, hat sie sich ja schon erwärmt.

So richtig viel steuern kann man bei der Recovair 275 nicht, im Kern liefert sie einige interessante Temperatur-Messwerte. Die verfügbaren Informationen:

$ ebusctl -p 8888 find -F circuit,name,comment
broadcast,datetime,Datum/Uhrzeit
broadcast,error,Fehlernachricht
broadcast,hwcStatus,Status Warmwasser
broadcast,id,Identifikation
broadcast,id,Identifikation
broadcast,load,Quick - WW Speicherladung
broadcast,outsidetemp,Außentemperatur
broadcast,signoflife,Lebenszeichen
broadcast,vdatetime,Datum/Uhrzeit
general,valuerange,Register Wertebereich
memory,eeprom,EEPROM Daten lesen
memory,ram,RAM Daten lesen
scan,id,Scan ID
scan.15,,
scan.15,id,Scan ID
scan.c0,,
scan.c0,id,Scan ID
vai00,Lueftung_HI,Lueftung_HI
vai00,Lueftungsstufe,Lueftungsstufe
vai00,Uhrzeit,Uhrzeit
wtw04,BypassStellung,BypassStellung
wtw04,Desiredtemp,Wunschtemp
wtw04,Ertrag_Gesamt_kWh,Ertrag_Gesamt_kWh
wtw04,Heatrecovery,Wärmerueckgewinnung
wtw04,Roomtemp,Zimmertemperatur
wtw04,Soll-Volumenstromkorrektur,Soll-Volumenstromkorrektur
wtw04,TempInletAir_SAI,Temperatur Zuluft
wtw04,TempOutgoingAir_EAO,Temperatur Fortluft
wtw04,TempOutsideAir_SAO,Temperatur Aussenluft
wtw04,TempWasteAir_EAI,Temperatur Abluft
wtw04,Unterdruckschutz,Unterdruckschutz
wtw04,Waermerueckgewinnung,Waermerueckgewinnung

Wärmekreislauf in Home Assistant

Eine Live-Anzeige des Wärmepumpen-Kreislaufes in Home Assistant:

Die Messwerte kommen über den eBusD und myPyllant aus der Vaillant ArothermPlus. Das Wärmekreislauf-Bild kann man als Picture Element einbinden, im Prinzip ist das nur ein Hintergrundbild. Und dann habe ich einfach die Temperaturen als State-Label Elemente darauf gelegt. Die Positionen der Temperaturen kann man sich über die Prozent-Angaben zurecht schieben.

Das Hintergrund-Bild kann Home Assistant selber hosten. Nach Anleitung lässt sich das integrierte Hosting aktivieren. Das SSH-Addon hat SCP-Support, damit kann man dann das Bild auf den Home Assistant raufschieben:

scp wp.png benutzer@192.168.0.999:/root/config/www/wp.png

Danach muss man HA einmal durchstarten.

Wenn man die State-Label (die Temperaturen) anklickt, bekommt man sogar noch die Detail-Seite zu dem jeweiligen Sensor angezeigt:

 

So sieht das im Home Assistant Editor dann aus:

type: picture-elements
title: Kreislauf
image: http://192.168.0.999:8123/local/wp.png
elements:
- type: state-label
  entity: sensor.outdoor_temperature
  style:
    top: 51%
    left: 10%
- type: state-label
  entity: sensor.arotherm_hmu00_airintaketemp
  style:
    top: 30%
    left: 9%
- type: state-label
  entity: sensor.arotherm_hmu00_compressorinlettemp_temps2
  style:
    top: 12%
    left: 40%
- type: state-label
  entity: sensor.arotherm_hmu00_compressoroutlettemp_temps2
  style:
    top: 12%
    left: 61%
- type: state-label
  entity: sensor.arotherm_hmu00_condensationtemp_temps2
  style:
    top: 30%
    left: 90%
- type: state-label
  entity: sensor.arotherm_hmu00_setmode_flowtempdesired
  style:
    top: 51%
    left: 90%
- type: state-label
  entity: sensor.arotherm_hmu00_condensoroutlettemp_temps2
  style:
    top: 64%
    left: 90%
- type: state-label
  entity: sensor.arotherm_hmu00_electronicexpansionvalveoutlettemp_temps2
  style:
    top: 76%
    left: 41%
- type: state-label
  entity: sensor.arotherm_hmu00_evaporationtemp_temps2
  style:
    top: 64%
    left: 9%