Panasonic Warmtepompen besturen via Heishamon Rules

Pagina: 1 2 3 4 Laatste
Acties:

Onderwerpen


  • blb4
  • Registratie: April 2008
  • Laatst online: 16:31
Binifada schreef op zondag 28 september 2025 @ 08:03:
[...]


Hartelijk dank!

Maar welke van de twee *.bin moet ik gebruiken voor de Heishamon large?
De ESP32 versie

Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23


  • Noknow
  • Registratie: Maart 2017
  • Laatst online: 08-01 12:15
Hallo allemaal,

Mijn huidige opstelling heeft ook een CZ-RTC5B regelaar aangesloten. Ik ben erin geslaagd om Heishamon aan te sluiten. Ik kan alle informatie uitlezen. Nu wil ik een regelset gebruiken om mijn MDC09 te besturen. Ik denk echter dat Heishamon en de CZ-RTC5B met elkaar in conflict komen bij het besturen van de unit.

Hoe ga ik hiermee om?

  • Dre
  • Registratie: Juni 2001
  • Niet online

Dre

Ter deling en ter review hierbij een stukje code voor:
  1. Automatische regeling QuietMode (QM) op basis van Outside_Pipe_Temp. Als de unit dreigt dicht te vriezen gaat de QM lager zodat de ventilator harder gaat draaien.
  2. Bij het defrostsignaal van de warmtepomp gaat QM naar 0.
  3. Bij een overshoot gaat QM naar 3 om het vermogen te reduceren. Dit voorkomt dat de warmtepomp uitgaat door de trage terugregeling in de WP zelf. De Panasonic zelf gaat anders uit bij een te grote overschoot.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
on System#Boot then
 print('System#Boot start');
 #prevSilentMode = @Quiet_Mode_Level;
 #silentMode = #prevSilentMode;
 #defrostLimitC = -1;
 setTimer(1,60);
 setTimer(2,10);
 setTimer(3,60);
 print('System#Boot end');
end

on timer=1 then
 print('Overschoot_control if needed QM3');
 if @Main_Outlet_Temp >= @Main_Target_Temp && @Compressor_Freq > 20 then
  #silentMode = 3;
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
 end
 print ('silentMode is currently Overschoot_control: ', #silentMode);
 setTimer(1,60);
end

on timer=2 then
 print('checkDefrost prewarning start');
 #defrostLimitC = round(0.8 * @Outside_Temp - 10);
 #defrostLimitC = max(-26, min(-6, #defrostLimitC));
 if @Outside_Pipe_Temp <= #defrostLimitC + 4 then
  #silentMode = #silentMode - 1;
  #silentMode = max(0, min(3, #silentMode));
 elseif @Outside_Pipe_Temp > #defrostLimitC + 5 then
  #silentMode = #silentMode + 1;
  #silentMode = max(0, min(3, #silentMode));
 end
 if #prevSilentMode != #silentMode then
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
 end
 print ('silentMode is currently: ', #silentMode);
 setTimer(2,300);
end

on timer=3 then
 if @Defrosting_State == 1 then
  #silentMode = 0;
  if #prevSilentMode != #silentMode then
   #prevSilentMode = #silentMode;
   @SetQuietMode = #silentMode;
   print ('silentMode is currently Defrost_State: ', #silentMode);
  end
 end
 setTimer(3,60);
end


Ik vraag me wel af of het verstandig is om met 3 timers te werken die eigenlijk allemaal aan dezelfde knop (@SetQuietMode) zitten te draaien.

  • Dre
  • Registratie: Juni 2001
  • Niet online

Dre

Heisamon staat ingesteld om elke 5 seconden meetwaarden op te halen van de warmtepomp met "How often new values are collected from heatpump: 5 seconds"

Graag zou ik ook elke 5 seconde willen controleren of de warmtepomp een overshoot heeft op de aanvoertemperatuur, en zo nodig Quiet Mode op 3 zet. Kan het kwaad als de loop elke 5 seconde loopt. Bijvoorbeeld qua schrijfacties van en naar de warmtepomp EEPROM ofzo. Of de stabiliteit van Heisamon.

Zoiets dus qua code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
on System#Boot then
 print('System#Boot start');
 #prevSilentMode = @Quiet_Mode_Level;
 #silentMode = #prevSilentMode;
 #defrostLimitC = -1;
 setTimer(1,53);
 setTimer(2,60);
 print('System#Boot end');
end

on timer=1 then
 print('Overschoot_control if needed QM3 OR defrost QM0');
 if @Defrosting_State == 1 then
  #silentMode = 0;
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
  print ('silentMode is currently Defrost_State: ', #silentMode);
 elseif @Main_Outlet_Temp > @Main_Target_Temp + 0 && @Heat_Power_Production > 3000 then
  #silentMode = 3;
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
  print ('silentMode is currently Overschoot_control: ', #silentMode);
 end
 setTimer(1,5);
end

on timer=2 then
 print('checkDefrost prewarning start');
 #defrostLimitC = round(0.8 * @Outside_Temp - 10);
 #defrostLimitC = max(-26, min(-6, #defrostLimitC));
 if @Outside_Pipe_Temp <= #defrostLimitC + 4 then
  #silentMode = #silentMode - 1;
  #silentMode = max(0, min(3, #silentMode));
 elseif @Outside_Pipe_Temp > #defrostLimitC + 5 then
  #silentMode = #silentMode + 1;
  #silentMode = max(0, min(3, #silentMode));
 end
 if #prevSilentMode != #silentMode then
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
 end
 print ('silentMode is currently: ', #silentMode);
 setTimer(2,300);
end

  • blb4
  • Registratie: April 2008
  • Laatst online: 16:31
Dre schreef op zondag 11 januari 2026 @ 21:11:
Heisamon staat ingesteld om elke 5 seconden meetwaarden op te halen van de warmtepomp met "How often new values are collected from heatpump: 5 seconds"

Graag zou ik ook elke 5 seconde willen controleren of de warmtepomp een overshoot heeft op de aanvoertemperatuur, en zo nodig Quiet Mode op 3 zet. Kan het kwaad als de loop elke 5 seconde loopt. Bijvoorbeeld qua schrijfacties van en naar de warmtepomp EEPROM ofzo. Of de stabiliteit van Heisamon.

Zoiets dus qua code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
on System#Boot then
 print('System#Boot start');
 #prevSilentMode = @Quiet_Mode_Level;
 #silentMode = #prevSilentMode;
 #defrostLimitC = -1;
 setTimer(1,53);
 setTimer(2,60);
 print('System#Boot end');
end

on timer=1 then
 print('Overschoot_control if needed QM3 OR defrost QM0');
 if @Defrosting_State == 1 then
  #silentMode = 0;
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
  print ('silentMode is currently Defrost_State: ', #silentMode);
 elseif @Main_Outlet_Temp > @Main_Target_Temp + 0 && @Heat_Power_Production > 3000 then
  #silentMode = 3;
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
  print ('silentMode is currently Overschoot_control: ', #silentMode);
 end
 setTimer(1,5);
end

on timer=2 then
 print('checkDefrost prewarning start');
 #defrostLimitC = round(0.8 * @Outside_Temp - 10);
 #defrostLimitC = max(-26, min(-6, #defrostLimitC));
 if @Outside_Pipe_Temp <= #defrostLimitC + 4 then
  #silentMode = #silentMode - 1;
  #silentMode = max(0, min(3, #silentMode));
 elseif @Outside_Pipe_Temp > #defrostLimitC + 5 then
  #silentMode = #silentMode + 1;
  #silentMode = max(0, min(3, #silentMode));
 end
 if #prevSilentMode != #silentMode then
  #prevSilentMode = #silentMode;
  @SetQuietMode = #silentMode;
 end
 print ('silentMode is currently: ', #silentMode);
 setTimer(2,300);
end
Ik denk dat je voor deze functie beter kan triggeren op @Main_Target_Temp. Ik gebruik ter voorkoming van de 3 °C overschrijding:

code:
1
2
3
4
5
6
7
8
on @Main_Outlet_Temp then
    if @ThreeWay_Valve_State == 0 && #CompState > 0 then
        $TaDelta = @Main_Outlet_Temp - @Z1_Heat_Request_Temp;
        if $TaDelta >= 3 then
            @SetZ1HeatRequestTemperature = ceil(@Main_Outlet_Temp) - 2;
        end
    end
end

Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23

Pagina: 1 2 3 4 Laatste