Havn’t got a heat pump yet? Evnick.com/heatpump get £100 visa card on completion of installation
Full guide: How I tuned my Octopus Cosy 6 heat pump using Home Assistant + Grok (step-by-step, fully replicable)
I have an Octopus Cosy 6 (6 kW monobloc) with a 4-port buffer tank, variable-speed secondary pump, radiator-only system (with radiator upgrades), and 210 L cylinder. No physical flow sensor from the heat pump, but I have live heat output (kW), flow temp, return temp, and electric input.
Step 1: Created a virtual flow sensor in Home Assistant I asked Grok for the template sensor. Here it is (copy-paste ready):
YAML
template:
- sensor:
- name: "Heat Pump Flow Rate"
state_class: measurement
device_class: volume_flow_rate
unit_of_measurement: "L/min"
state: >
{% set delta_t = states('sensor.heat_pump_flow_temperature') | float(0) - states('sensor.heat_pump_return_temperature') | float(0) %}
{% if delta_t > 0.1 %}
{{ (states('sensor.heat_pump_heat_output') | float(0) * 60 / (4.186 * delta_t)) | round(2) }}
{% else %}
0
{% endif %}
Step 2: Shared my full system PDF (quote/design document) I uploaded the PDF containing:
- Radiator schedule (old vs new sizes and outputs)
- 4-port buffer design
- Performance estimate (annual demand, SCOP table)
- Design flow temperature (originally 50 °C)
Grok used the radiator upgrade schedule and buffer details to give precise flow-rate expectations instead of generic numbers:
- Minimum safe primary flow: 10–12 L/min
- Typical good range: 10–18 L/min
- Target ΔT: 4–8 °C for best efficiency on radiators
Step 3: Initial weather compensation curve I started with:
- Warm weather: 36 °C
- Cold weather: 48.5 °C
Step 4: Shared live readings and asked for tuning advice I gave Grok multiple live snapshots (heat output, electric input, flow/return temps, outdoor temp, indoor room temps, and the virtual flow sensor reading). Grok calculated real-time COP and ΔT each time and told me whether the flow rate was in the good range.
Examples of real readings I shared:
- Mild day (8.3 °C outdoor): flow 39.2 °C, return 34.5 °C, ΔT 4.7 °C, flow rate 12.61 L/min, heat output 2.84 kW, electric input 0.73 kW → Live COP 3.87
- Cooler evening (3.8 °C outdoor): flow 37.7 °C, return 33.4 °C, ΔT 4.3 °C, flow rate 12.70 L/min, heat output 3.38 kW, electric input 0.90 kW → Live COP 3.75
Step 5: Iterative curve tuning with Grok
- Grok confirmed the initial 36 °C / 48.5 °C curve was already very good.
- I lowered warm-weather to 35 °C and shared new readings.
- Grok analysed the new data and said the system was still very stable (flow rate stayed ~12.7 L/min, COP remained excellent).
- Final recommendation (after checking lounge design target of 21 °C): Hold at 35 °C warm-weather for now. The lounge is reaching ~20.3 °C (comfortable but slightly below design). Lowering further risks dropping habitable rooms below target without big efficiency gains. Raise to 36–37 °C only if you want the lounge consistently at 21 °C.
Current recommended weather compensation curve (what I’m running now)
- Warm weather: 35 °C
- Cold weather: 48.5 °C
Results after tuning
- Very stable primary flow (12.6–12.7 L/min)
- Strong real-world COP (3.75–3.87 in mild-to-cool weather)
- Excellent even heat distribution across upgraded radiators
- Low flow temperatures (37–39 °C) while still meeting comfort needs
Would I recommend this exact process to others? Yes — 100 %. Just:
- Create the virtual flow sensor in HA
- Share your PDF quote/design (radiator schedule + buffer details)
- Give Grok your live readings + current weather-comp settings
- Follow the step-by-step tuning feedback
It turned my Cosy 6 from “good” into “really well optimised” in just a few days.