Real world connecti...
 
Notifications
Clear all

Real world connection to a heat pump over modbus

59 Posts
10 Users
8 Reactions
9,705 Views
cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

Posted by: @kev-m

BTW my IT supplier (my son!) says it's just Python, in a framework called Dash.  I can also turn traces on and off and hover to get point values.

I'm not sure what Dash is, but I am pretty sure it uses plotly under the hood, as many of the plotly manual pages have a section usually towards the end of the page that refers to doing whatever it is in Dash. As you know, I tend to dislike layers of added complexity, and as I have got things working in plotly, I haven't looked into Dash.

The code in plotly (express) can be very simple and ultra light weight eg

import plotly.express as px
import pandas as pd

df = pd.read_csv('mideadata.csv') 

fig = px.line(df, x='datetime', y=['LWT', 'RWT', 'ambient', 'MD02_tmp'], title='Heating Parameters with Range Slider and Selectors')

fig.update_xaxes(
    rangeslider_visible=True,
    rangeselector=dict(
        buttons=list([
            dict(count=12, label="12h", step="hour", stepmode="backward"),
            dict(count=1, label="1d", step="day", stepmode="backward"),
            dict(count=7, label="1w", step="day", stepmode="backward"),
            dict(count=1, label="1m", step="month", stepmode="backward"),
            dict(count=6, label="6m", step="month", stepmode="backward"),
            dict(count=1, label="YTD", step="year", stepmode="todate"),
            dict(count=1, label="1y", step="year", stepmode="backward"),
            dict(step="all")
        ])
    )
)
fig.show()

Lines 3 and 4 the ones that do the heavy lifting, and satisfy my requirement that the code is human readable, none of this __self__init__ mumbo jumbo, instead just read csv data, make a line plot from these variables. The updat.xaxes code adds the range slider and buttons. That said, plotly express struggles with very large data sets, and I ended up using a slightly more complex but of code, but it is still human readable.

Posted by: @kev-m

Couldn't you try just changing the curve so that the flow stays higher a bit longer?  Can you have steps in your WC curve? Mine is using Mitsi's Auto Adapt btw.

I did try that (higher left hand end of curve) and it may have helped a bit but the COP dropped badly. The WC curve probably does have steps in it, if the Midea manual is to be believed, but there is no way of altering them, the only points that can be set are the left hand and right hand end points. In due course I am hoping to set up my own auto adaption, either by modifying the WC curve end points in response to aberrant internal air temp or perhaps going onto a fixed LWT, and then modifying the fixed LWT.

Posted by: @kev-m

It's interesting that your ASHP is cycling even though it's still heating the house.  I would have thought with your heat loss and ASHP, it would modulate sufficiently to run continuously at 10 deg OAT.  It's almost like your rads are struggling to emit the heat the ASHP is producing. Does this represent the whole house or do you have trvs or zones?  

It's the whole house, no zones and TRVs are heads off at the moment so max flow, and the total radiator capacity is just over what the heat pump can produce at max output, so they shouldn't be throttling the output in these conditions. I too am perplexed as to why it cycles in what are pretty middle of the road conditions. Perhaps the LWT at that point is not too low, but too high? Perhaps I should try lowering the right hand end of the WC curve - but I suspect that will mean the house fails to reach my target temp. Midea heat pumps, at least mine does, have fixed flow rates when running, so it can't reduce output by lowering the flow rate.    

  

 

 

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@kev-m)
Famed Member Member
5606 kWhs
Joined: 4 years ago
Posts: 1276
 

@cathoderay 

a quick Google reveals that plotly is the company and dash is the product.  

I don't know exactly how your (or any) ASHP decides to stop heating when running on WC; I assume it must be based on the LWT, RWT or both.  I wonder if there is any way to adjust the hysteresis around this, i.e. allow the flow to vary by a couple of degrees either way to stop it switching on and off.

The normal way to stop cycling is to (I think) raise the RH end of the curve and use the thermostat as a limiter.  But you're not in that position because it's cycling before it gets up to temperature.

Can you overlay energy consumed or delivered? That would let you see how much it's able to modulate.  

It's really good you can see what's happening because without these graphs it's not obvious at all.

  


   
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

Posted by: @kev-m

@cathoderay 

a quick Google reveals that plotly is the company and dash is the product.  

I don't know exactly how your (or any) ASHP decides to stop heating when running on WC; I assume it must be based on the LWT, RWT or both.  I wonder if there is any way to adjust the hysteresis around this, i.e. allow the flow to vary by a couple of degrees either way to stop it switching on and off.

The normal way to stop cycling is to (I think) raise the RH end of the curve and use the thermostat as a limiter.  But you're not in that position because it's cycling before it gets up to temperature.

Can you overlay energy consumed or delivered? That would let you see how much it's able to modulate.  

It's really good you can see what's happening because without these graphs it's not obvious at all.

  

Gas boilers and oil boilers cycle, so why not heat pumps?

Heat pump cycling is to be expected in the shoulder months, when the OAT can go from 5C to 15C over a few hours some days. As Kev has suggested, one way to reduce cycling frequency could be by increasing the warm end of the WC curve or alternatively increasing the Offset value, and then setting the thermostat say 1C above desired temperature.

The probable cause of cycling is that the heat pump is producing more thermal energy than can be absorbed and distributed by the heat emitters with the present level of heat loss. This causes the RWT to increase, which in turn will cause the LWT to rise above the required level. The heat pump controller should reduce the compressor speed so as to produce less thermal energy, but of course there is a limit to how low the compressor can go.

The problem may be reduced if the heat pump controller can also reduce the water pump speed.

No easy solution, other than to buy one of the heat pumps containing a large and small compressor, when one of the manufacturers takes up my idea and designs one.

 


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

Posted by: @kev-m

Can you overlay energy consumed or delivered? That would let you see how much it's able to modulate.  

Here it is, the mother of all heating charts:

the mother of all heating charts

 

No need to comment that it is far too busy, I know it is, but it is all the data on one chart. Caveat: as I mentioned before, I am not sure about the energy values, I very much doubt my heat pump is running at a COP somewhere between 4 and 6. The energy values on this chart are the calculated ones based on the modbus readings of the raw data, ie amps/volts for energy in and flow rate/delta t (and specific heat) for energy out*. That said, the Midea app based COP (based on total energy in/out based on lifetime kWh in/out) gives similar values, so perhaps they are OK. Whether they are or not, the relative energy in/out as it varies over time should be right, and it seems the long periods of cycling aren't associated with particularly high energy use - but what I don't know is what, in an ideal world, is the right amount of energy use (though maybe I can estimate it, from the total heat loss calcs and guesstimate COPs eg heat loss @ design conditions (-2) = 12kW, heat loss @18 degrees = 0 kWh => heat loss @ 11 degrees (eg Right hand side of chart) = 5.4 kWh (which is a bit more than is shown), guesstimate COP 3.5 => energy in needed = 1.5 kWh, which is roughly 50% more than is shown...).

 

* This will come up in later posts, but just to mention here that I tried various ways of getting from raw minute data to calculated total hour data, from simple sums to fancy area under the curve stuff, and they all came out with much the same answer  

      

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

@cathoderay

You may find the spreadsheet that I produce some time ago a useful tool to check theory against practice. You could try varying the values in the green highlighted cells to see if you can match the actual results obtained.

 


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

@derek-m - I don't think the model and the real world agree, but there is one thing I am not sure about in the spreadsheet, what to enter for the Total Heating Elements Output (W) (cell P1) as the current value, 23000, is huge. It is also the delta t 50 value. Assuming a 5400 demand (from above guesstimate) at 11 degrees OAT, and other real world values (from right hand side of chart) of 11 OAT, 19 IAT, I get, for the OAT 10 (nearest to actual of 11)/45 degree LWT intersection energy in (energy and power are getting mixed up here) ranging from 2 - 4 kW and energy out ranging from 8 -15 kW (cells with text in red):

image

 

The modbus values as shown on the chart (Midea app values are similar) are around 1 kWh in, 4.5 kWh out. As I said earlier, these might be optimistic, but the fact the Mida App and my calcs get similar results using different methods suggests they may in fact be correct.  

I've now noticed the main body of the spreadsheet, including the cells I highlighted in red text, don't change when the Total heating Elements Output is changed, so I have sort of answered my initial question, it doesn't matter what value goes in cell P1.

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote



cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

Duh, I can be so dumb sometimes! I've just remembered I've got an independent way of checking energy in: the external heat pump dedicated kWh meter. The heating went on at 0700 on Monday, and apart from a brief spell at the beginning, and the two DHW cycles, it appears (on the chart) to have used around 1 kWh per hour. 0700 Monday to 1200 today is 53 hours, adding up to 53 kWh, then let's add an extra 1 kWh for the first 6 hours plus another 1 kWh for the DHW cycles (normally last 30 mins), and we get a total of 60 kWh.

I can also sum the values in the underlying csv data file, that gives a total of 59.52 (meaning my Mk 1 Eyeball Chart Reader is fairly accurate). The Midea App number for the same period is 66 kWh.

I took a meter reading as I turned the heating on Monday, 11885 and another one just now: 11952, making the actual directly measured energy in over the period to be 67 kWh, meaning my calculated kWh values are not far out, the difference may be standing energy use, not sure, need to look into this. The Midea App number, I have to admit, is even better.         

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

The corresponding energy out figures summed from the csv data files are 257 kWh for the Midea app, 264 kWh for my calculated figure, giving average total (53 hour) period COPs of 3.9 and 4.4 respectively. Assuming these energy out values are correct - I have no independent way of verifying them at the moment - then maybe my heat pump is running at a COP of around 4 at the moment - a welcome surprise, because I have always thought it was around 3.

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

@cathoderay

The Heating Demand value in cell C1 should be the calculated heat loss for your home at the specified OAT detailed in cell E1.

Cell H1 is obviously the desired Indoor Temp.

Cell P1 should contain the value of the total heating capacity of all the heating elements at the standard Delta T of 50C. So if you have 10 x 2kW radiators, the total would be 20kW or 20000W. The original values were the ones you supplied some time ago.

The body of the table contains the data from the Midea manual which of course will not change. The important data is in column D, which indicates the probable COP, LWT and Power Input at different OAT's.

For example, at a desired IAT of 18C at an OAT of 10C, the Heating Demand (C28) would be 4313W, at a COP of 6.6 (D27), requiring a LWT of 31.8C (D28) and a Power Input (D29) of 654W. Increasing the IAT to 19C, changes the values to 4852W, 6.85, 34.1C and 708W respectively.

Changing the values in cells C1 and P1 can be used to investigate the likely effect of improved insulation and larger heat emitters.


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

I've just zoomed in on the frequent cycling (from 0000 to 0200 this morning), and close up, it doesn't look too bad:

cycling zoomed in

 

It's 'only' cycling twice an hour, within tolerable limits, and there are periods in the middle of the cycle when it sort of gets to steady state, but then something happens, and the LWT/RWT start to rise. Also visible in the chart is the effect of the compressor going on and off on the ambient temp. 

The 64 million dollar question is what disturbs the steady state in the middle of each cycle, and causes the LWT/RWT to rise, given the other key parameters (OAT, IAT) are stable? 

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
9909 kWhs
Joined: 3 years ago
Posts: 1994
Topic starter  

Posted by: @derek-m

For example, at a desired IAT of 18C at an OAT of 10C, the Heating Demand (C28) would be 4313W, at a COP of 6.6 (D27), requiring a LWT of 31.8C (D28) and a Power Input (D29) of 654W. Increasing the IAT to 19C, changes the values to 4852W, 6.85, 34.1C and 708W respectively.

OK, I think I get it (col D is confusing, because the header only has COP/LWT), but the numbers still don't reflect reality eg (from the zoomed in chart above), OAT 11C, IAT 19C, the values (energy out, COP, LWT, energy in) are around (they vary a bit moment by moment) 4520, 4.5, 40, 950 (vs predicted 4852W, 6.85, 34.1C and 708W). Close in some cases, but not the same: in particular, the COP, LWT and energy in are all out by significant amounts (assuming of course my real values are indeed the real values). I certainly think a predicted COP of 6.85 is on the high side, and I am not sure why it should go up (from 6.6) when the IAT, and so LWT and energy in, are increased.      

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@derek-m)
Illustrious Member Member
15283 kWhs
Veteran Expert
Joined: 4 years ago
Posts: 4429
 

@cathoderay

I suspect it may be the time delay as the heat emitters warm up. Once all the heat emitters have warmed up they will not be absorbing as much thermal energy from the water, the RWT will therefore start to increase, which in turn will push up the LWT until it hits the limit and stops the compressor.

I suppose you could try switching your system to fixed LWT mode at a temperature setting in the high 30's, then see if this helps stop the cycling.

Looking at the spreadsheet, at an OAT of 10C and above the minimum thermal energy output is greater than the heat loss, so cycling can certainly be expected.

This post was modified 1 year ago by Derek M

   
ReplyQuote



Page 2 / 5



Share:

Join Us!

Heat Pump Dramas?

Thinking about installing a heat pump but unsure where to start? Already have one but it’s not performing as expected? Or are you locked in a frustrating dispute with an installer or manufacturer? We’re here to help.

Pre-Installation Planning
Post-Installation Troubleshooting
Performance Optimisation
✅ Complaint Support (Manufacturer & Installer)

👉 Book a one-to-one consultation now.

Latest Posts

x  Powerful Protection for WordPress, from Shield Security
This Site Is Protected By
Shield Security