Skip to content

Add offset criteria for self-regulation when in over_climate which underlying that have a temperature sensor #348

@ikoz

Description

@ikoz

Version of the custom_component

5.2.2

Configuration

hvac_modes:
  - auto
  - heat
  - "off"
min_temp: 7
max_temp: 35
target_temp_step: 0.5
preset_modes:
  - none
  - frost
current_temperature: 17.5
temperature: 19.2
hvac_action: idle
preset_mode: none
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: false
last_central_mode: null
frost_temp: 5
eco_temp: 0
boost_temp: 0
comfort_temp: 0
frost_away_temp: 7
eco_away_temp: 7
boost_away_temp: 7
comfort_away_temp: 7
power_temp: null
target_temperature_step: 0.5
ext_current_temperature: -3.31
ac_mode: false
current_power: null
current_power_max: null
saved_preset_mode: none
saved_target_temp: 19.2
saved_hvac_mode: null
window_state: "off"
motion_state: null
overpowering_state: null
presence_state: null
window_auto_state: "off"
window_bypass_state: false
security_delay_min: 60
security_min_on_percent: 0.5
security_default_on_percent: 0.1
last_temperature_datetime: "2024-01-18T09:23:38.671679+00:00"
last_ext_temperature_datetime: "2024-01-18T09:15:23.759238+00:00"
security_state: false
minimal_activation_delay_sec: 10
device_power: 1
mean_cycle_power: null
total_energy: 0.13
last_update_datetime: "2024-01-18T09:23:38.676592+00:00"
timezone: Europe/London
window_sensor_entity_id: null
window_delay_sec: null
window_auto_enabled: false
window_auto_open_threshold: null
window_auto_close_threshold: null
window_auto_max_duration: null
motion_sensor_entity_id: null
presence_sensor_entity_id: null
power_sensor_entity_id: null
max_power_sensor_entity_id: null
temperature_unit: °C
is_device_active: false
ema_temp: 17.45
is_over_climate: true
start_hvac_action_date: null
underlying_climate_0: climate.wiser_dinning_room
underlying_climate_1: null
underlying_climate_2: null
underlying_climate_3: null
is_regulated: true
regulated_target_temperature: 22.1
auto_regulation_mode: auto_regulation_strong
regulation_accumulated_error: 28.109999999999992
auto_fan_mode: auto_fan_none
current_auto_fan_mode: auto_fan_none
auto_activated_fan_mode: null
auto_deactivated_fan_mode: null
friendly_name: Dinning Room Thermostat
supported_features: 17

If it is releveant to regulation performance or optimisation some curves are needed

I'm attaching the following picture to show the problem. In this plot:

  • PURPLE line: My desired target temperature (this has been set as target temperature in VTech climate entity)
  • DARK BLUE line: The accurate temperature of the room (external zigbee sensor). This is the sensor set in VTech as external sensor.
  • LIGHT BLUE line : The internal TRV temperature sensor - takeng from the TRV climate entity.
  • ORANGE line: The TRV setpoint, configured by VTech (regulated temperature).
  • DARK ORANGE vertical bars: the duration where the TRV was open and heating
    Screenshot from 2024-01-18 09-27-29

Describe the bug

I'm was trying to heat the room to 17.2C and then 19.2C (from 6:30AM onwards) (purple line - vtech entity target temperature)
The real temperature of the room dropped below 17.2C around 3:00AM. (dark blue line)
You can see in the graph that around 3:00AM, Vtech started raising the TRV setpoint (regulated temperature - orange line).

However, the TRV did not actually open to let heat into the room, because the internal TRV temperature (light blue line) was higher than the regulated TRV setpoint (orange line) - or it jumped to immediately be higher after heating for a few minutes.

Then I raised the target temperature to 19.2C around 6.30AM. The same thing happened.

So Vtech has been trying to heat the room since 3.00AM and it is now 10AM and the room has not been heated, because the TRV has not actually opened for more than a few short bursts that each lasts a few minutes (vertical bars). These short bursts are also happening at "low demand %", since the demand % is the difference between regulated temperature setpoint and internal trv temperature. This is important, because I am using opentherm: Low demand % means low flow temperature, meaning very slow heating response.

I believe the Vtech self-regulation algorthm should take into account the internal TRV temperature of the climate entity, and calculate an "offset" based on the current value of the internal TRV temperature, so that the regulated temperature is above the internal TRV temperature, and the TRV lets water to flow.

For example I'd expect that if real room temperature is 16C, target temperature is 19C and internal trv temperature is 22C, then Vtech should set the regulated temperature to 25C (a lot higher than 22C, since 19C target is much higher than the 16C real temperature)

Let me know if you need a debug log, but it is fairly obvious what is happening here. VTech calculates the regulated temperature based on external room sensor, completely ignoring the internal TRV sensor. Even in 'hard' self-regulation mode, it cannot work. I am not sure it would work in expert mode either.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1developedWhen development is done and tested

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions