--- category: - "[[Note]]" type: title: On using predheat to preheat floors created: 2026-01-11T16:41:36 topic: - "[[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|ASHP]]. 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 ```