Jump to content

Recommended Posts

Posted (edited)

Been playing with ChatGTP over the last few days, generally going down a rabbit hole. Was looking for a simple way to model Weather Compensation fine tuning and or boosting during low tariff periods. So generally ChatGTP was no help.

 

Had a search for something unrelated on Google and came across this site

https://www.diyenjoying.com/2025/04/11/harnessing-the-power-of-predictive-heating-revolutionizing-home-comfort-with-home-assistant-and-derivative-sensors/

And finally a very simple modelling tool became realistic.

 

So using the data on site above to add a couple of helpers to home assistant (hardware is already there - temp sensor). Then fine tuned for my UFH (thick screed etc). You now have a simple hourly and now 4 hourly look ahead at likely room or house temp if nothing changes. The author of that site used the information to start and stop heating, based on a generic thermostat, but taking account of floor inertia to not get swings in room temperature. So start boiler early and stop early, based on likely house temp - not actual house temp.

 

But for weather compensation you just need a simple notification house temp is increasing or decreasing and you can simply adjust the curve. Add a bit of human looking at the day, it's stunning and room temp is increasing - no shocks don't do anything. But if it's dull outside you can decrease curve.

 

So went back to ChatGTP for assistance.

 

I have actually extended everything out to 4 hours to make it a little more meaningful for my house.

 

There are few things this allows

Intelligent fine tuning of WC curve. So you can see the likely house temp in 1 and 4 hrs and rate of change as a positive or negative.

 

Options you could implement - you could run a cooler WC curve and boost during cheap periods.

 

Could use it for batch charging alone, add some simple energy calculations based on you heating system store energy etc.

 

Will add a few screenshots later

 

 

Edited by JohnMo
  • Like 4
  • Thanks 1
Posted

So this is the small dash board on home assistant. I have a target temp set at 20 degC.

 

Screenshot_2025-12-09-14-38-16-14_c3a231c25ed346e59462e84656a70e50.thumb.jpg.030c49b47e05c27b63242569f57d24e9.jpg

The yaml code for the prediction automation, this just sends a notification to me if we are running to cool.in the house to see how it works. If connected to an output devise and house was likely to be too cold, ASHP would be started at a flow temp higher than the normal WC curve.

 

alias: ASHP Batch Charge Based on Prediction and Slab Temp

description: Batch-charge UFH during cheap windows using predicted + slab return history

triggers:

  - at: "04:00:00"

    trigger: time

  - at: "13:00:00"

    trigger: time

actions:

  - choose:

      - conditions:

          - condition: time

            after: "04:00:00"

            before: "07:00:00"

          - condition: or

            conditions:

              - condition: template

                value_template: |

                  {{ predicted_min_4h < (setpoint - 0.35) }}

              - condition: template

                value_template: |

                  {{ (return_now - return_min_4h) < -1.5 }}

        sequence:

          - action: notify.mobile_app_cph2449

            data:

              message: "Batch heat started test "

          - delay: "03:00:00"

          - action: notify.mobile_app_cph2449

            data:

              message: Batch charge finished test

      - conditions:

          - condition: time

            after: "13:00:00"

            before: "16:00:00"

          - condition: or

            conditions:

              - condition: template

                value_template: |

                  {{ predicted_min_4h < (setpoint - 0.30) }}

              - condition: template

                value_template: |

                  {{ (return_now - return_min_4h) < -1.5 }}

        sequence:

          - action: notify.mobile_app_cph2449

            data:

              message: "Batch test "

          - delay: "03:00:00"

          - action: notify.mobile_app_cph2449

            data:

              message: Batch charge finished test

mode: single

variables:

  setpoint: 20

  predicted: "{{ states('sensor.lounge_predicted_temperature_in_1_hour') | float }}"

  predicted_min_4h: "{{ states('sensor.4h_min_predicted_lounge_temp') | float }}"

  return_now: "{{ states('sensor.emoncms_emoncms_org_heatmeter_returnt') | float }}"

  return_min_

4h: "{{ states('sensor.4h_min_return_temp') | float }}"

Posted

Details of some of the template sensors 

 

This is the import windows defined - have only use morning and afternoon slots

 

binary_sensor:

  - name: hp_import_window

    state: >

      {{ now().hour in [4,5,6] or now().hour in [13,14,15]

}}

 

Predicted trigger state

sensor:

  - name: hp_predicted_trigger

    state: >

      {% set p = states('sensor.lounge_predicted_temperature_in_1_hour') | float(99) %}

      {% set setp = 20 %}

      {% if (p < setp - 0.3) and (is_state('binary_sensor.hp_import_window', 'on')) %}

        on

      {% else %}

        off

      {% endif %}

 

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...