Files
bobbie-pkm/Notes/On using predheat to preheat floors.md
2026-03-02 17:06:32 +00:00

2.3 KiB

category, type, title, created, topic
category type title created topic
Note
On using predheat to preheat floors 2026-01-11T16:41:36
Predbat
Home Assistant
ESPHome Ecodan heatpump

I want to, while the energy rates are cheap, charge the floors up with heat using Home Assistant. With the output from Predheat I can somehow use ESPHome Ecodan heatpump to start the Mitsubishi 6kW Ecodan Heat Pump.

Entities that I can use:

  • predheat.heat_energy
    • It resets to zero everyday
    • The attributes predict the heat pump consumption over the next 2 days, in kWh.
  • predbat.battery_hours_left
    • Gives the number of hours the battery will run the house for
    • This figure takes account of everything (solar generation, etc.). I should use this.
  • predbat.load_energy
    • The predicted total load for the day
    • I would need to factor solar generation into this too
  • predbat.load_energy_h0
    • The current load (in kWh)

[!NOTE] A rough plan, for Octopus Go If predbat's 'battery_hours_left' doesn't cover the day AND the predicted heat pump consumption is a factor THEN charge the floors with heat

Here's some code suggested by AI Gemini for a start point for a ha automation

alias: "ASHP: Smart Night Slab Charge"
description: "Charges floors if Predheat predicts >5kWh of heat needed by 8:30 AM"
trigger:
  - platform: time
    at: "00:30:00"
condition:
  # Adjust '5.0' based on your house. 
  # If it's a cold night, h8 might be 10-15kWh. If mild, it might be 2kWh.
  - condition: template
    value_template: "{{ states('predheat.heat_energy_h8') | float > 5.0 }}"
action:
  # 1. Turn up the Target Temp to force the pump on
  - service: climate.set_temperature
    target:
      entity_id: climate.ecodan_zone_1
    data:
      temperature: 23 
  # 2. Push the Flow Temp higher to pack heat into the concrete
  - service: number.set_value
    target:
      entity_id: number.ecodan_aa_max_flow_temp_z1
    data:
      value: 45
  
  # Wait for the end of the cheap slot
  - wait_for_trigger:
      - platform: time
        at: "05:30:00"

  # 3. Reset to normal maintenance settings
  - service: climate.set_temperature
    target:
      entity_id: climate.ecodan_zone_1
    data:
      temperature: 20
  - service: number.set_value
    target:
      entity_id: number.ecodan_aa_max_flow_temp_z1
    data:
      value: 35