AI to tune a heat Pump

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:

  1. Create the virtual flow sensor in HA
  2. Share your PDF quote/design (radiator schedule + buffer details)
  3. Give Grok your live readings + current weather-comp settings
  4. Follow the step-by-step tuning feedback

It turned my Cosy 6 from “good” into “really well optimised” in just a few days.

Leave a Reply