Anlage stumi75
Vorwort
Diese Seite beschreibt den Umbau von einer Viessmann Atola 11kW Gasheizung auf eine Panasonic Aquarea Wärmepumpe WH-MDC05J3E5.
Der Bestand
Das Haus
- Reiheneckhaus in Oberbayern
- Baujahr 1990
- 2016 von uns erworben
- EG, OG und DG mit zusammen 131 m² Wohnfläche, Keller
- EG Wohnzimmer, Küche, WC
- OG drei Zimmer, Bad
- DG ein Zimmer, Bad
- Wände aus 30 cm Hohllochziegel
- Ursprüngliche Dämmung Dach ca. 4 cm Engelshaar Glaswolle + 2 cm Rigipsplatte
- Unten Bodenplatte 1 cm Styropor + 7 CM Betonestrich
- Dach 26° Neigung Süd-Südwest/ Nord-Nordost
- 9,3 kWp PV Anlage auf dem Süddach
Die Heizung
- 11kW Viessmann Atola Niedertemperatur Gasbrenner BJ 1990
- EG: 3 Heizkörper in Reihe (90x55 22, 140x55 22, 60x55 10)
- OG: 5 Heizkörper in Reihe (70x55 20, 70x55 33, 60x55 22, nachgerüstete FBH (2016), Handtuchheizkörper (2016), 70x55 20)
- DG: 2 Heizkörper in Reihe (80x55 33, 80x55 33)
- Keller: 1 Heizkörper nachgerüstet parallel (140x90 22)
- Rauschfreier Volumenstrom 540 l/h
Die Idee
Heizung
- Einbau einer 3,5kW LLWP im EG im August 2022 wegen von Russland erzeugter Gaskrise
- Planungsbeginn Umbau auf Wärmepumpe trotz miserabler Hydraulik im Herbst 2022
- Beim Gasbrenner die Düse auf 5kW Heizleistung ausgelitert
- Stromanschluß des Gasbrenners auf Steckdose umgebaut und einen Tasmota WLAN Stecker dazwischen gesteckt um über den Stromverbrauch das Taktverhalten im Homeassistant zu protokollieren.
- Am 13.12.2022 bei minus 14 Grad war der Brenner immer noch am Takten - somit war klar, das 5kW Heizleistung ausreichen müssten.
Hydraulikschema
Die Einrohrheizung ist halt einfach Mist. Obwohl laut Wikipedia Einrohrheizungen schon seit den 80ern kaum noch eingebaut wurden, hat der damalige Errichter trotzdem eine beauftragt - der Dreispänner wurde ja nur vermietet.
Die anderen Häuser der Straße wurden von Eigenheimbewohnern gebaut - da findet sich Fussbodenheizung und Zweirohrkreise bei Heizkörpern. Ein meiner Meinung nach weiterer Grund, warum sich Gesetzgeber ins Baugewerbe einmischen müssen, um Mindeststandards durchzusetzen.
Somit wurde der alte 200l WW-Speicher als Reihen-/Abtaupuffer eingeplant wie hier beschrieben mit Umschaltventil.
Dämmung
- Beim Umbau vor dem Einzug mussten schon die Fenster im EG getauscht werden - das passierte zum Glück 3-glasig.
- Sonst war die Dämmung des 1990er Zustands nur das mindeste.
PV
- 9,3 kWp Anlage kam in 2019 und Dank PV-Forum mal was selbst mit Vorwissen geplant
- Das Süddach ist komplett voll und die Technik für 2019 top.
Umsetzung
Dach
- Beim Umbau vor dem Einzug 2016 mit 16cm Mineralwolle gedämmt und wo möglich mit 40cm (Dachspitz und gefangene Räume über den Lauf der Zeit)
Fenster
- Alle Rolladenkästen aufgemacht, sauber gemacht, Bänder getauscht und mit 40mm Armaflex nachgedämmt
Wärmeverteilung
- Bei allen Heizkörpern vor dem Winter 2022 die Thermostate mit Blindstopfen ersetzt
- Den thermischen Abgleich mit den Einrohrhahnblöcken gemacht
Somit konnte der Volumenstrom auf 720 l/h rauschfrei erhöht werden
Installation Wärmepumpe
- Rückbau der Zirkulation
- 300l TESY Speicher unter der Küche aufgestellt, das Warmwasser kommt nun ohne Zirkulation in ca. 3 Sekunden in der Küche, in den Badezimmern nach ca. 10 Sekunden
- Thermosiphons beim WW-Speicher verbaut
- Drei Wärmemengenzähler: Heizen, WW-Bereitstelung und WW-Verbrauch
- Alten 200l WW-Speicher als Reihenpuffer verbaut - der Kurzschluß beim Abtauen wird durch ein weiteres, von der Jeisha gesteuertes, Afriso 3-Wege-Ventil geschalten.
- Gasbrenner entsorgt
Steuerung & Co
Ziele sind:
- möglichst lange Takte
- konstante Innenraumtemperatur bis in den Abend
- Ausnutzung der PV und höheren Quelltemperaturen durch eine Überhöhung tagsüber und einmalige Warmwasserbereitung um 13 Uhr
Statistiken
Ohne Messwerte und deren Auswertung keine Entscheidungen!
Wärmepumpen-Verbrauchsdatenbank
Steuerung
Die WP Heizungssteuerung läuft mit der Wassertemperatur geführten Heizkurve. Das Steuergerät ist an zentraler, schattiger Stelle im Wohnzimmer montiert und damit wird die Raumtemperatur gemessen.
Die Heizkurze bestimmt anhand der Aussentemperatur den Vorlauf und somit den Energieeintrag - wenn dieser passend nachgeführt wird, bleibt die Temperatur im Haus konstant.
Die Heishamon Rules
- kümmern sich um das Eindrosseln der Jeisha per Flüstermodus und Laufzeitverlängerung per Vorlauftemperaturverschiebung (timer11)
- schalten nach der Warmwasserbereitung um 13 Uhr direkt wieder auf Heizen um und setzen das Warmwasserziel anhand der Außentemperatur (timer12)
- schalten bei warmen Temperaturen die WP in der Nacht komplett aus (timer13)
Alles andere macht die Jeisha Steuerung.
Heizkurve
Heishamon Rules
on System#Boot then
#stateBeforeDHW = 1;
#opModeBeforeDHW = 0;
#targetLowBeforeDHW = 32;
#targetHighBeforeDHW = 40;
#sleepAtNight = 1;
setTimer(10, 35);
setTimer(11, 40);
setTimer(12, 41);
setTimer(13, 42);
end
on timer=10 then
#targetLowBeforeDHW = @Z1_Heat_Curve_Target_Low_Temp;
#targetHighBeforeDHW = @Z1_Heat_Curve_Target_High_Temp;
end
on timer=11 then
setTimer(11, 30);
$outletDelta = @Main_Outlet_Temp - ( @Main_Target_Temp - @Z1_Heat_Request_Temp );
$newHeatRequest = floor( $outletDelta ) - 1;
$newQuietMode = 0;
if @Outside_Temp >= 5 then
$newQuietMode = 2;
end
if @Outside_Temp >= 8 then
$newQuietMode = 3;
end
if $outletDelta < 0 then
print('While catching up to outlet target temperature disable quiet mode');
$newQuietMode = 0;
end
if $newHeatRequest < 0 then
$newHeatRequest = 0;
end
if $newHeatRequest > 5 then
$newHeatRequest = 5;
if #sleepAtNight == 1 then
#sleepAtNight = 2;
end
end
if @Quiet_Mode_Level != $newQuietMode then
@SetQuietMode = $newQuietMode;
end
if @Z1_Heat_Request_Temp != $newHeatRequest then
@SetZ1HeatRequestTemperature = $newHeatRequest;
end
end
on timer=12 then
setTimer(12, 30);
$minDHWTarget = 42;
$minOutside = 10;
$maxDHWTarget = 50;
$maxOutside = 25;
$newDHWTarget = round($minDHWTarget + ((@Outside_Temp - $minOutside ) * ($maxDHWTarget - $minDHWTarget) / ($maxOutside - $minOutside)));
if @Outside_Temp <= $minOutside then
$newDHWTarget = $minDHWTarget;
end
if @Outside_Temp >= $maxOutside then
$newDHWTarget = $maxDHWTarget;
end
if @Operating_Mode_State >= 3 then
print(concat('@Operating_Mode_State (>=3): ', @Operating_Mode_State));
if @DHW_Temp > @DHW_Target_Temp then
print(concat('@DHW_Temp: ', @DHW_Temp,' > @DHW_Target_Temp: ', @DHW_Target_Temp));
if @DHW_Power_Consumption == 0 then
print(concat('@DHW_Power_Consumption (==0): ', @DHW_Power_Consumption));
@SetHeatpump = #stateBeforeDHW;
@SetOperationMode = #opModeBeforeDHW;
setTimer(20, 210);
setTimer(21, 330);
setTimer(22, 480);
end
end
elseif @Operating_Mode_State < 3 then
print(concat('@Operating_Mode_State (<3): ', @Operating_Mode_State));
#stateBeforeDHW = @Heatpump_State;
#opModeBeforeDHW = @Operating_Mode_State;
if %hour == 13 && %minute == 00 then
print(concat('Activating DHW production. Target high: ', @Z1_Heat_Curve_Target_High_Temp,', Target low: ', @Z1_Heat_Curve_Target_Low_Temp ));
#targetLowBeforeDHW = @Z1_Heat_Curve_Target_Low_Temp;
#targetHighBeforeDHW = @Z1_Heat_Curve_Target_High_Temp;
if @DHW_Target_Temp != $newDHWTarget then
@SetDHWTemp = $newDHWTarget;
end
@SetOperationMode = 4;
@SetHeatpump = 1;
@SetCurves = '{zone1:{heat:{target:{high:60,low:60}}}}';
end
end
end
on timer=20 then
@SetCurves = concat('{zone1:{heat:{target:{high:', #targetHighBeforeDHW ,',low:', #targetHighBeforeDHW ,'}}}}');
setTimer(11, 8);
end
on timer=21 then
@SetCurves = concat('{zone1:{heat:{target:{low:', (#targetHighBeforeDHW - #targetLowBeforeDHW) / 2 + #targetLowBeforeDHW ,'}}}}');
setTimer(11, 8);
end
on timer=22 then
@SetCurves = concat('{zone1:{heat:{target:{low:', #targetLowBeforeDHW ,'}}}}');
setTimer(11, 8);
end
on timer=13 then
setTimer(13, 30);
$hour = %hour;
$minute = %minute;
if $hour == 6 && $minute == 0 then
if @Outside_Temp < 12 then
@SetMaxPumpDuty = 150;
end
if #sleepAtNight == 2 && @Heatpump_State == 0 then
#sleepAtNight = 1;
@SetHeatpump = 1;
end
end
if $hour == 18 && $minute == 0 && #sleepAtNight == 1 && @Heatpump_State == 1 && @Outside_Temp > 7 && @Room_Thermostat_Temp > 22 then
#sleepAtNight = 2;
end
if $hour == 20 && $minute == 0 then
@SetMaxPumpDuty = 105;
if #sleepAtNight == 2 && @Heatpump_State == 1 then
@SetHeatpump = 0;
end
end
end
Homeassistant Konfigurationen
configuration.yaml
sensor:
- platform: template
sensors:
custom_panasonic_heat_pump_average_runtime:
friendly_name: Heatpump average runtime
unit_of_measurement: h
value_template: >-
{% set calc = ( float( states('sensor.panasonic_heat_pump_main_operations_hours'),0) / float( states('sensor.panasonic_heat_pump_main_operations_counter'),1) ) | round(2) %}
{{ 0 if calc <= 0 else calc }}
input_number:
custom_z1_heatcurve_target_water_temperature_at_low_outdoor_temperature:
name: Heizkurve Wasser Zieltemperatur bei niedriger AT
unit_of_measurement: °C
min: 15
max: 60
step: 1.0
mode: slider
custom_z1_heatcurve_target_water_temperature_at_high_outdoor_temperature:
name: Heizkurve Wasser Zieltemperatur bei hoher AT
unit_of_measurement: °C
min: 15
max: 60
step: 1.0
mode: slider
recorder:
purge_keep_days: 400
commit_interval: 120
Automations
alias: When DHW starts change Z1 heating curve to 56
description: ""
trigger:
- platform: state
entity_id:
- sensor.panasonic_heat_pump_main_threeway_valve_state
from: Room
to: Tank
condition: []
action:
- service: input_number.set_value
target:
entity_id: >-
input_number.custom_z1_heatcurve_target_water_temperature_at_low_outdoor_temperature
data:
value: >-
{{
states('number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp')
| float }}
- service: input_number.set_value
target:
entity_id: >-
input_number.custom_z1_heatcurve_target_water_temperature_at_high_outdoor_temperature
data:
value: >-
{{
states('number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp')
| float }}
- service: number.set_value
data:
value: 56
target:
entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp
- service: number.set_value
data:
value: 56
target:
entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp
mode: single
alias: After DHW ends wait and set heating curve to 40
description: ""
trigger:
- platform: state
entity_id:
- sensor.panasonic_heat_pump_main_threeway_valve_state
from: Tank
to: Room
for:
hours: 0
minutes: 4
seconds: 0
condition: []
action:
- service: number.set_value
data:
value: 40
target:
entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp
- service: number.set_value
data:
value: 40
target:
entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp
mode: single
alias: After DHW ends wait and set heating curve back
description: ""
trigger:
- platform: state
entity_id:
- sensor.panasonic_heat_pump_main_threeway_valve_state
from: Tank
to: Room
for:
hours: 0
minutes: 6
seconds: 0
condition: []
action:
- service: number.set_value
data:
value: >-
{{
states('input_number.custom_z1_heatcurve_target_water_temperature_at_low_outdoor_temperature')
| float }}
target:
entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp
- service: number.set_value
data:
value: >-
{{
states('input_number.custom_z1_heatcurve_target_water_temperature_at_high_outdoor_temperature')
| float }}
target:
entity_id: number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp
mode: single
Dashboards
Wärmepumpe
type: entities entities: - entity: sensor.panasonic_heat_pump_main_outside_temp - entity: sensor.panasonic_heat_pump_main_room_thermostat_temp - entity: sensor.panasonic_heat_pump_main_dhw_temp - entity: sensor.panasonic_heat_pump_main_threeway_valve_state - entity: switch.panasonic_heat_pump_main_defrosting_state - entity: sensor.panasonic_heat_pump_main_main_target_temp - entity: sensor.panasonic_heat_pump_main_main_outlet_temp - entity: sensor.panasonic_heat_pump_main_main_inlet_temp - entity: sensor.panasonic_heat_pump_main_compressor_freq - entity: sensor.panasonic_heat_pump_main_high_pressure - entity: sensor.panasonic_heat_pump_main_fan1_motor_speed - entity: sensor.panasonic_heat_pump_main_pump_flow - entity: sensor.panasonic_heat_pump_main_pump_speed - entity: sensor.panasonic_heat_pump_main_pump_duty - entity: sensor.panasonic_heat_pump_s0_watt_1 - entity: sensor.aquarea_energy_consumption - entity: sensor.aquarea_energy_production - entity: sensor.aquarea_cop - entity: sensor.panasonic_heat_pump_main_operations_counter - entity: sensor.panasonic_heat_pump_main_operations_hours - entity: sensor.custom_panasonic_heat_pump_average_runtime title: Aktuelle Werte state_color: true
type: grid
square: false
columns: 1
cards:
- type: entities
entities:
- entity: water_heater.panasonic_heat_pump_main_dhw_target_temp
- entity: climate.panasonic_heat_pump_main_z1_temp
- entity: number.panasonic_heat_pump_main_z1_heat_request_temp
- entity: number.panasonic_heat_pump_main_max_pump_duty
- entity: number.panasonic_heat_pump_main_heat_delta
- entity: number.panasonic_heat_pump_main_dhw_heat_delta
- entity: number.panasonic_heat_pump_main_heating_off_outdoor_temp
- entity: number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp
- entity: number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp
- entity: number.panasonic_heat_pump_main_z1_heat_curve_outside_low_temp
- entity: number.panasonic_heat_pump_main_z1_heat_curve_outside_high_temp
- entity: binary_sensor.panasonic_heat_pump_main_quiet_mode_schedule
- entity: select.panasonic_heat_pump_main_quiet_mode_level
- entity: binary_sensor.panasonic_heat_pump_main_dhw_installed
- entity: binary_sensor.panasonic_heat_pump_main_room_heater_state
- entity: binary_sensor.panasonic_heat_pump_main_dhw_heater_state
title: Einstellungen
Wärmepumpe Kurven
type: vertical-stack
cards:
- type: history-graph
entities:
- entity: switch.panasonic_heat_pump_main_heatpump_state
- entity: select.panasonic_heat_pump_main_operating_mode_state
- entity: sensor.panasonic_heat_pump_main_threeway_valve_state
- entity: switch.panasonic_heat_pump_main_defrosting_state
- entity: binary_sensor.panasonic_heat_pump_main_internal_heater_state
- entity: select.panasonic_heat_pump_main_quiet_mode_level
- entity: switch.panasonic_heat_pump_main_holiday_mode_state
hours_to_show: 8
title: Status
- type: history-graph
entities:
- entity: sensor.panasonic_heat_pump_main_outside_temp
- entity: sensor.panasonic_heat_pump_main_room_thermostat_temp
- entity: number.panasonic_heat_pump_main_z1_heat_request_temp
- entity: sensor.panasonic_heat_pump_main_dhw_temp
- entity: sensor.panasonic_heat_pump_main_main_target_temp
- entity: sensor.panasonic_heat_pump_main_main_outlet_temp
- entity: sensor.panasonic_heat_pump_main_main_inlet_temp
title: Temperaturen
hours_to_show: 8
- type: history-graph
entities:
- sensor.panasonic_heat_pump_main_compressor_freq
title: Kompressor
hours_to_show: 8
- type: history-graph
entities:
- sensor.panasonic_heat_pump_main_pump_flow
title: Volumenstrom
hours_to_show: 8
- type: history-graph
entities:
- sensor.panasonic_heat_pump_main_pump_speed
- sensor.panasonic_heat_pump_main_fan1_motor_speed
title: Drehzahlen
hours_to_show: 8
- type: history-graph
entities:
- entity: sensor.panasonic_heat_pump_main_pump_duty
- entity: number.panasonic_heat_pump_main_max_pump_duty
hours_to_show: 8
- type: history-graph
entities:
- sensor.panasonic_heat_pump_main_dhw_energy_consumption
- sensor.panasonic_heat_pump_main_dhw_energy_production
- sensor.panasonic_heat_pump_main_heat_energy_consumption
- sensor.panasonic_heat_pump_main_heat_energy_production
- sensor.panasonic_heat_pump_s0_watt_1
- sensor.panasonic_heat_pump_s0_watt_2
- sensor.aquarea_energy_consumption
- sensor.aquarea_energy_production
title: Energie
hours_to_show: 8
- type: history-graph
entities:
- entity: sensor.panasonic_heat_pump_main_high_pressure
hours_to_show: 8
- type: history-graph
entities:
- sensor.aquarea_cop
hours_to_show: 8
- type: custom:plotly-graph
refresh_interval: 10
title: Heat curve
defaults:
entity:
show_value: true
line:
shape: spline
layout:
xaxis:
type: number
autorange: true
entities:
- entity: ''
name: Zone 1
x:
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_outside_low_temp'].state
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_outside_high_temp'].state
'y':
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_target_high_temp'].state
- >-
$ex
hass.states['number.panasonic_heat_pump_main_z1_heat_curve_target_low_temp'].state
Jeisha Einstellungen
Meine Einstellungen

