Calculate heating equivalent hours

Hello

In my job (renewable energies) there is a concept named equivalent hours, that is the hours at maximum power needed to produce the energy produced by WTG in a timerangee. As the wind turbine production depends on the wind speed, cannot produce always at full power and it’s an easy way to see how much powerdensity has a location during a period of time.

I want to use the same concept to my heating system. I live in an apartment with central heating system. There is a central circuit of hot water and each department is connected through a TRV valve controlled by a thermostat inside the apartment. My Tado thermostat is sending an % command to the TRV to open a %, so it lets a percentage of the maximum water (and heat) to my apartment. It’s very helpful to avoid temperature overshootings but the heating hours statistics is not very helpful in this case.

I have configured an history_stats to register the time my thermostat is opening the valve following this post but it’s very different to have a 25% open than a 100%. So I want to use the equivalent hours concept to my heating. The idea is to apply the percentage to the time at each percentage and register it into history_stats, but I don’t how to implement it.

Any idea or suggestion on how to do it would be very helpful.

I think you could use an integration helper to achieve the calculation part, but the main problem I see is valve percentages are not linear relative to flow (i.e. 25% open doesn’t mean 25% flow, etc.).

The ideal would require getting a flow curve for your specific valve and matching things up (as well as making some assumptions). Far from an expert, but I assume same valve types have similar curves so you could probably get by using a curve for a similar valve, but that’s just an educated guess.

Edit: How are you billed or is it included in your rent? Wondering if you could use an already existing meter to get what you’re after more directly.

Thanks

Yesterday, before your answer, I configured the integration for calculating my equivalent heating but didn’t think about the valve flow not being proportional.

There is an water flow sensor outside my apartment to measure the amount of hot water we are consuming and they use this value to bill us. It’s far for ideal because not all the apartment have the same input and output water temperature but it’s the way they do it. I’m our bill the include the m³ of water consumed and the gas consumption is divided proportionally between all the owners.

The problem is I don’t have access to this sensor so I can’t calibrate my % with the water consumption. I will try to calculate it with a similar valve, if I can find any.

Ok, some updates on my case because is not working as expected. First of all I’m going to describe what helpers did I create to do my calculations:

First I create a template helper to calculate the state of the valve (opening value) per unit instead of %- As it is a per unit value it doesn’t have units.

{% set porcentaje = states('sensor.salon_calefaccion') | float %}

{{ (porcentaje / 100) | round(2) }}

This values is used in a riemann sum to calculate the equivalent heating based on the valve opening, but it’s not working as expecteddue mainly to 2 different reasons:

1 - I expected the units to be hours but the result does’t have units. For example, if you integrate the power W in a time period of hours, you have as result Wh or kWh (depending the setting of the helper). Following the same logic, if my origin variable doesn’t have units, I would expect h as results. Any idea on how to solve these problems,

  1. I’m facing the same problems explained in this post: The normal status of the valve is 0, but the riemann sum doesn’t calculate corretly that first step after changing the value from 0 to another positive value, and thus those steps are present in the calculationg and the result is not valid.

Any idea on how to solve these 2 problems?

Sounds like you need to set the type to left sum instead of the default of trapezoidal.