Heatpump_heat feed steps assistance

Can anyone provide me a link to the documentation or the steps to create the “heatpump_heat” feed?

I seem to have all the data, but I’m stuck on the steps to create the feed needed to add to My Heatpump app

Thanks in advance


Hi, welcome aboard!

If you know the Flow - Return (dT) and the Flow Rate, it should be possible to calculate the heat produced. You would do this using the process list on one of the input.

I think the formula you need can be found here: Basics — OpenEnergyMonitor 0.0.1 documentation

Note: if there’s glycol in your system, you’ll need to factor that in too.

1 Like

Thank you @Timbones - I had seen that and was aware of the formula, my issue is how and where to apply it.

Are you able to share how your feed is setup for this?

I’m using ESPAltherma into Home Assistant and then posting from there to the cloud version of Emoncms.

Data is from a September 2022 Octopus Energy Services 11kW Daikin heat pump and Mixergy plate loaded cylinder
Thanks for the tip on glycol, but just anti-freeze valves on this system.

I’ve tried setup a virtual feed using the formula, but then it seems a virtual feed can’t be used to populate the My Heatpump app via the drop downs.

Feels like I’m stuck on the last bit now!



I’ve not done this myself, but I’d probably go the input process for leaving_water_temp_before_buh_r1t:

  1. Log to feed: leavingwatertemp
  2. - input: inlet_water_temp_r4t
  3. Allow positive
  4. * input: flow_sensor_l_min
  5. x: <some magic number>
  6. Log to feed: heatpump_heat
  7. Power to kwh: heatpump_heat_kwh
1 Like

Well that’s much better.

I had got as far as you, but lines 3 (I assume this forces the calculation prior to occur a bit like brackets (?)), and especially 6 and 7 were extremely useful.

It’s now added these as feeds I can select from the drop down picker in My Heatpump app page!

Let’s see if it works.

Happy to make my system public if I can get this to work.

Thanks again @Timbones - very much appreciated.


1 Like

This only allows positive numbers, and throws away negative numbers. I’m not entirely sure this is the right thing to do, as it hides negative heat during defrosts. Maybe someone else can chime in and confirm…

1 Like

So, I have movement - but clearly the wrong formula as I was getting below 0.1 CoP and then realised the Daikin outputs flow in l/m whereas the formula is l/s (kg/s)….so needs to be multiplied by 60:

Now I’m getting this:

I think the factor you need is 4200 / 60, or simply 70.

1 Like

A word of warning to you all, when you’re picking up values from other feeds or inputs, beware that where you do the calculation can make a significant difference. This is because the calculation uses the last KNOWN (to it) value of the other input/feed - and these become “known” in the order the Node’s input page appears in emonCMS and within that page in the order they appear.

Therefore, for example, if all your values come from the same sensor node and your maths dictates that you use data from inputs 1, 2 & 5, then do the maths in the process list of Input 5. If you do it in input 2, the value from input 1 will be correct, the value from input 5 will be one ‘scan’ old, maybe 10 s or more out of date depending on how often the data comes in.

Also, there’s no mechanism in emonCMS to synchronise data collection between sensor nodes.


Worked example:

( 37.5 C - 31.6 C ) x 10.7 l/min x 70 = 4419 W

Which for an input of 995 W gives a COP of about 4.44 which seems about right.

1 Like

Thats great - been a long day getting all the other bits done, so missed that.

1 Like

Hi @Robert.Wall - thank you for the advice on this.

How is this done for others?

I have the option to be fair and I did consider it actually, to do the maths part in home assistant, and then post the output directly as an input to Emoncms - as I already had the working CoP displayed in Home Assistant.

Would this be preferable?

Is HA uploading all the fields in a single input post, or as separate posts? If the former, then I guess it might work okay?

If the heat data displayed appears glitchy, then you might need to reconsider where you do the calculations.

1 Like

Hi @Timbones - its individual sensors, and I already have another doing the maths so will be interesting to compare actually, and worst case switch to this:

It does not work OK - I proved it with 3 inputs from an emonTx4 running emonLibDB and the 3 values came in the same radio packet into emonHub. See Help with feed calculation not always correct - #25 by Robert.Wall

1 Like

Your chart is looking good so far… :+1:

1 Like

Cheers @Timbones, thank you for your guidance.

Yes it does seem to be working, with the caveat that @Robert.Wall noted on the processing of data.

Some odd things going on:


I accidentally left the HA automation to turn the HP on/off in line with yesterday’s Intelligent Octopus additional off-peak “slots” I had from EV charging running til 10:30am (plan is to tie the automation to the Octopus api rather than manual)

I also have leaving water temp (LWT) on the Daikin side set to LWT -10C at 05:30 (end of the standard Intelligent Octopus off-peak period) and so the pump comes on when switched on (also for frost protection actually to be fair), and the CoP is still being calculated.

I guess this is where doing the maths of heat production in HA can take account of whether “space heating = on” and/or the compressor is running, and only then can heat be produced, and the finished result posted to Emoncms for ingestion and display.

@Timbones I have been trying to work out why Home Assistant was consistently showing a higher working figure for CoP (~15-20%) than was showing on My Heatpump app graphing……I thought it may be to do with the point that @Robert.Wall mentioned, but was always a fair way out constantly….

Turns out I had put 60 rather than 70 as the shortcut figure (4200 / 60) in the formula/processing….so an error was made and the last ~24hrs heat produced data is out. D’oh!

Is there a way of rectifying this for the historical data?

Take a look at Visualisations → EditRealtime. Scaling a range is possible in there - highlight the range you want to scale so that it exactly fills the window, then “Multiply data in the window by a float or a fraction”.


As it happens, I’ve just been doing this exact sort of thing for another system.

If you’re able to replay all the previous values for the system, then the safest is to post those to a new input, create a new process and feeds to collect that data, then compare it to the previous feeds. If it’s not right, delete the feeds and try again. When happy, delete the old feeds and rename the new ones, making sure to update any existing inputs to point to the new feeds. Best done while the heat pump is not running.

This won’t work so well on cumulative kwh feeds.

You can also export the data from the Graph page as CSV, fix externally, then Import via the button at the bottom of the feeds page. Trouble is, I don’t think this properly updates the value of the kWh feed, so you might still have a disjoint in the data. Test this by importing the original data into a new feed, and then import the fixed data over the top. Check that subsequent data values (e.g. 0) get added correctly.

If all else fails, or the data gets messed up, truncate all your feeds and start again from zero, as it’s only been running for a few days.

In fact, do you don’t even need that; My Heatpump app has a timestamp field, and anything before then will be ignored.

1 Like