Ooh…I have a bug in my code so the heat pump is not turning off.
I thought I’d share this because it finally means you can see my 14kW (!!!) Ecodan running at a steady state when it’s “a bit cold”. Of course this is England and it’s not really cold.
So we can see it’s averaging 2.13kW input and 6.63kW output for a rather gruesome CoP of 3.11 when it’s 5 °C outside (although it’s pretty stormy so the effective temp is 2 °C). The gold line on the Efficiency
chart is the efficiency Mitsubishi expect, so I’m doing OK, but clearly not in the 4 to 5 range you folks are seeing.
Ironically, as I was writing that another part of the algorithm stepped-in and turned it off
So I’d conclude you really don’t want an over-sized heat pump like mine running all the time unless you are independently wealthy or you own a power-generating company. It’s costing about 0.30GBP an hour to run.
Having said that, it is nice and warm in here - it looks like it just pushed the house up to 21 °C. That’s an extra one degree over the last hour.
The switch off it just did was because the radiators are shutting down because it’s warm and the overnight setback is kicking it. As a result there wasn’t enough heat transfer. The flow was rising up and up to keep the deltaT but eventually the algorithm just says “enough is enough” and stops trying to lift the flow temp. Without that it would have started becoming uncomfortably hot for sleeping.
Please ignore the odd spike at 22:00, that’s just a measuring artefact.
Now time to go work out why the algorithm is saying this:
The space heating efficiency is high, it’s 1000% which is higher than the universally accepted good efficiency of 400%
When it’s doing well it just keeps chugging along, but clearly it was misinformed about how well it was doing
Edit:
<sigh>
This method was engaged because it’s in a rare scenario and this stopped working in November when the firmware changed and those attributes always return 0.
def spaceHeatingEfficiency(deviceInfo: DeviceInfo) -> float:
consumed = deviceInfo["HeatingEnergyConsumedRate1"]
produced = deviceInfo["HeatingEnergyProducedRate1"]
if consumed == 0:
return 10
return produced / consumed
On the bright side it’s working in EmonCMS because of all the hacking I’m doing to derive those values. I’ll have to bring that hacking deeper into the code.