Logbook, 24 October 2026. The first cold week of the heating season. The heat pump turned out to be better than its COP measurement said, the roof sat a quarter turn differently than every model assumed, the battery was finally allowed to go deep, and the inverter ran twenty minutes slow. Plus four mistakes of my own, and what they led to.
Heat pump COP too low? It was the flow rate
On 20 October it got properly cold for the first time: 3 degrees at night. The heat pump ran all night and the dashboard showed a COP of 2.8. That is low for an R290 machine at those temperatures, and I didn’t trust the number. The reason was in the chart next to it: the pump in the outdoor unit was stuck at full power, 26 litres per minute, with only 2 degrees between flow and return. With such a small difference, half a degree of measurement error is already a quarter of the output. The COP wasn’t low, it was unmeasurable.
The installer menu of the LG has a “flow control” menu with three methods. Three days of trying produced this table:
| Setting | Flow rate | ΔT | Heating COP | Starts per day |
|---|---|---|---|---|
| Constant flow, 100 % | 26 l/min | ~2 K | 2.8 (unreliable) | 2–6 |
| Fixed ΔT, 5 K (lowest setting) | 7 l/min | 5 K | 4.0 | 16 |
| Pump capacity, 50 % | 13 l/min | 3–4 K | 4.0–4.1 | 3–7 |
With a 5-degree difference the measurement was sharp, but the compressor started short cycling: sixteen starts a day. At 7 litres per minute the compressor’s lowest output already gives 5 to 6 degrees, the water overshoots the heating curve, and the LG stops. The middle ground, 50 percent pump capacity, gives long runs and a usable measurement. One trap cost me a day: the percentage in the submenu only does something if the control method itself is also set to “pump capacity”. While it was still on “constant flow”, the LG ignored the 50 percent and stayed at 26 litres.
Along the way it turned out the heating circuit hadn’t been bled properly yet. That’s done, and the pressure is back at 2 bar.
How much heat does the house actually need?
The heat loss of the house is the number the thermal model of EMHASS will run on. This week it went all over the place: 84 W/K on two sunny days (the sun helped heat), 187 W/K on a day with the 2-degree measurement (heat overestimated), and I once made it 170 to 200 myself by calculating back from an assumed COP. Since the pump has been at 13 litres, the measurement has said 106 and 109 W/K two days in a row. That is the first number I believe. At minus ten degrees it means a heat demand of just over 3 kW; the 9 kW heat pump is generous for that, which is also why it sits at its lowest setting in the shoulder season and occasionally has to cycle.
The cooling measurement for the same model got stuck on a conflict I had built myself. It measured from midnight to five o’clock and required the heating to have been off since eight in the evening. But price-aware heating switches the heating on around one o’clock on cold nights, in the cheapest hours. So exactly the nights that say the most were never valid. Now a window does the measuring: as soon as it is dark and the circuit has been off for three hours (the floor keeps releasing heat for hours after heating), the measurement runs until the heating comes back on. The first valid measurement came in on 22 October.
Too warm upstairs, just enough downstairs
The house has one heating circuit: underfloor heating downstairs and radiators upstairs on the same water. The radiators release heat faster, heat rises, and upstairs reached 21 degrees while downstairs barely made 20. The thermostat looks at downstairs and so kept heating, also for a floor that was already too warm. The old radiator valves upstairs are now at 2.5; upstairs stays at 20. Danfoss Z-Wave valves are ready for the radiators upstairs, and the adapter rings for the M30 valves are on order. Then upstairs can also go lower at night, independently of downstairs.
Price-aware heating on a flat day
The rule that decides when electricity is “expensive” (15 percent above the daily average) failed on a day without a dip: an average of €0.36, with the morning at €0.40 to €0.47. Everything sat just below the threshold, and the heat pump heated straight through the morning peak. A second threshold has been added: the most expensive 40 percent of the quarter hours in the next 24 hours always count as expensive. On a flat day, heating still shifts to the night and the afternoon.
The sun: a quarter turn off
Since last week Solcast has been the only solar forecast; this week Open-Meteo was removed from the chain everywhere, and evcc now also gets the Solcast forecast via Home Assistant, without extra API calls. But even Solcast peaked an hour late every day. In every model the roof was set to 205 degrees, south-west. SunCalc showed that on 21 October at 12:55 the sun stood at 173 degrees, exactly the moment my panels hit their maximum. So the panels face almost due south. Those 205 degrees were never measured; the number was just there.
The battery may go deeper, and may arbitrage again
Two settings kept the battery too cautious. The first was the floor of 20 percent. The datasheet of the Dyness STACK100 states a 95 percent depth of discharge and at least 8,000 cycles at that depth. The window is now 10 to 95 percent, with a soft reserve at 15. That is 3 kWh extra per day.
The second was the wear cost EMHASS charges per kWh: 6 cents. Because of it, charging at night for €0.24 and using it in the €0.46 peak was just not worth it. Worked out properly: 5,300 euros divided by 8,000 cycles of 30.72 kWh at 95 percent depth is 2.3 cents per kWh. With that value the battery charges in the afternoon dip for the evening, and on Friday evening it covered the whole peak, from 50 to 15 percent.
What the battery doesn’t do is earn much. Over the month it is about 16 euros, 65 cents a day. Until the end of 2026 the Dutch net metering scheme applies (in Dutch), and then storing solar power yields little; the gain is only in the difference between dip and peak, and that was small this month. In 2027 that changes.
The inverter ran twenty minutes slow
A chart of daily totals showed 68 kWh of consumption one morning, while the house had used 6. The Deye’s daily counters turned out to reset only at 00:20: without a Wi-Fi stick the inverter’s clock runs free, and it was twenty minutes slow. The chart took the maximum per day, and during those twenty minutes “today” still held yesterday’s total. The chart now looks at the last value, and Home Assistant syncs the inverter’s clock every night, through the same automation that is the only one writing to the Deye. Just in time: winter time starts tomorrow, and without a stick the Deye wouldn’t have changed with it.
Self-sufficient, but without the car
New on the dashboard: self-sufficiency (the share of consumption that didn’t come from the grid) and self-consumption (the share of solar used at home), per day, week, month and year. Along the way an assumption collapsed. I thought the car charged before the inverter and so automatically fell outside the house figures. On 22 October it charged 40 kWh overnight, and those were simply in the Deye’s daily consumption. The charger sits behind the meter. Because the car runs through my company, Home Assistant now explicitly subtracts its energy from consumption, costs and self-sufficiency.
Four mistakes of my own
- A missing line. While cleaning up the Open-Meteo measurement loop, the header of one block disappeared, and Home Assistant rejected the entire analysis package because of it. A whole day without a single measurement.
- The car. See above: assumed instead of checked.
- The heat loss. A number calculated with an assumed COP, while the measurement itself wasn’t right yet.
- The sign of the azimuth. Solcast counts differently from a compass (east is negative); the first value pointed the wrong way. A second check caught it.
What the four have in common: each time an assumption where a measurement should have been. For each of them there is now a check: two templates that, pasted once, walk through the whole solar chain and the inverter’s daily counters, and a system check for the rest.
Where things stand
The heat pump runs at a COP of around 4, in long runs, in the cheap hours, and costs about 2 euros in electricity on a 10-degree day. The battery uses its full window and charges in dips for peaks. The solar forecast matches reality. Calibration for the thermal model is under way: one of the seven nights, two of the five heating days, with a heat loss figure that has finally settled.
Next steps: the Danfoss valves upstairs, and once calibration is complete, letting EMHASS plan the heating, so that on a sunny day the run shifts to the afternoon by itself. Around 20 November there will be enough history to calibrate the load forecast. Until then: measure.
Frequently asked questions
Why does my heat pump show a low COP?
Look at the flow rate and the difference between flow and return first. With a high flow rate and a ΔT of only 2 degrees, half a degree of measurement error is already a quarter of the calculated output. Then the COP says more about your measurement than about your heat pump. In my case the COP went from 2.8 to around 4 just by lowering the flow rate.
Why does my heat pump short cycle at a low flow rate?
At a low flow rate, the water heats up faster at the lowest compressor setting than the house needs. It overshoots the heating curve and the heat pump stops, only to start again a little later. A flow rate in the middle (13 litres per minute and 3 to 4 degrees ΔT in my case) gave long runs and a usable measurement. If in doubt, leave settings like these to your installer.
More about the LG and how I read it out: Heat pump over Modbus. How I measure the COP: Measuring and calibrating. All logbooks in one place: Logbook (in Dutch). All incidents and lessons: Lessons from practice (in Dutch).
This works in my situation: a 9 kW LG Therma V R290 with one circuit for underfloor heating and radiators, a Deye inverter with a Dyness battery, and quarter-hour prices. Flow rate and installer menus differ per model and installation; if in doubt, leave work on the heating circuit to your installer. Check it against your own documentation. As of October 2026.





Leave a Reply