Alexwijn / SAT

The Smart Autotune Thermostat (SAT) is a custom component for Home Assistant that works with an OpenTherm Gateway (OTGW).
GNU General Public License v3.0
43 stars 8 forks source link

Heating is not starting with multi-room #6

Closed enryIT closed 1 year ago

enryIT commented 1 year ago

As soon as I configure either "main" or "auxiliary" climate entities in the "Climate" settings tab the heating stays in "inactive" mode forever.

Room temp: 19°C Target temp: 25°C Heating is not starting. OTGW does't receive the CS/CH commands.

How can I start the extension in debug mode and give you proper logs?

Alexwijn commented 1 year ago

You can enable debug mode through changing the logger settings: https://www.home-assistant.io/integrations/logger/

Can you share the error value that SAT reports? And note that main climate temperatures are ignored, it uses the selected inside sensor for that.

sergeantd83 commented 1 year ago

Is the configured room temperature sensor float or string? If it is string SAT will not work.

enryIT commented 1 year ago

You can enable debug mode through changing the logger settings: https://www.home-assistant.io/integrations/logger/

Can you share the error value that SAT reports? And note that main climate temperatures are ignored, it uses the selected inside sensor for that.

In debug mode no errors are shown:

2023-04-13 19:29:46.652 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:29:47.240 INFO (MainThread) [custom_components.sat.climate] Updating error value to 0.16 (Reset: True)
2023-04-13 19:29:58.189 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:30:11.738 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:30:40.822 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:30:41.995 INFO (MainThread) [custom_components.sat.climate] Updating error value to 0.66 (Reset: True)
2023-04-13 19:30:53.899 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.66 (Reset: True)
2023-04-13 19:31:02.607 INFO (MainThread) [custom_components.sat.climate] Updating error value to 0.66 (Reset: True)
2023-04-13 19:31:14.383 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:31:57.507 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:32:06.415 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 19:32:17.061 DEBUG (MainThread) [custom_components.sat] Manually updated sat data

Is the configured room temperature sensor float or string? If it is string SAT will not work. From the climate configuration tab you could only select "climate" entity type, not sensor, so I think it uses the climate entity's state attributes that is the temperature?

For the record, I'm feeding SAT with tado's climate entities that are constructed as such

climate.bagno state: auto state attributes:

hvac_modes: off, auto, heat
min_temp: 5
max_temp: 25
target_temp_step: 0.5
preset_modes: away, home
current_temperature: 20.6
temperature: 20
current_humidity: 53.5
hvac_action: idle
preset_mode: home
offset_celsius: 0
offset_fahrenheit: 0
default_overlay_type: MANUAL
default_overlay_seconds: null
friendly_name: Bagno
supported_features: 17
Alexwijn commented 1 year ago

Can you show me the SAT climate state attributes?

enryIT commented 1 year ago

Can you show me the SAT climate state attributes?

hvac_modes:
- 'off'
- heat
min_temp: 7
max_temp: 35
target_temp_step: 0.5
preset_modes:
- none
- away
- home
- sleep
- comfort
current_temperature: 20.4
temperature: 22
hvac_action: idle
preset_mode: none
error: 1.65
integral: 0
derivative: 0
proportional: 83.853
history_size: 10
collected_errors: 1
integral_enabled: false
derivative_enabled: true
current_kp: 50.82
current_ki: 0.000417
current_kd: 50820
derivative_raw: 0
experimental_heater_active: true
experimental_duty_cycle: 780
setpoint: 10
valves_open: false
max_relative_mod: 100
heating_curve: 30.8
outside_temperature: 12.63
optimal_coefficient: null
overshoot_protection_value: null
friendly_name: Termostato
supported_features: 17
Alexwijn commented 1 year ago

It appears that SAT thinks that no values are open. How did you add climate.bagno to SAT?

enryIT commented 1 year ago

From the Climates (multi-room) configuration flow

enryIT commented 1 year ago

Also, I added some TRVs and those are recognized


2023-04-13 20:00:57.773 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:00:59.896 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:01:00.268 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.salotto).
2023-04-13 20:01:00.268 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.65 (Reset: False)
2023-04-13 20:01:00.399 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.studio).
2023-04-13 20:01:00.399 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.65 (Reset: False)
2023-04-13 20:01:00.871 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.bagno).
2023-04-13 20:01:00.872 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.65 (Reset: False)
2023-04-13 20:01:12.436 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:01:20.981 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:02:02.530 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:02:11.055 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:02:36.125 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:03:01.197 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:03:30.245 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:03:38.776 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:04:07.220 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:04:21.855 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:04:30.381 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:05:20.478 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:05:24.501 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:05:45.550 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-04-13 20:06:00.317 DEBUG (MainThread) [custom_components.sat.climate] Inside Sensor Changed.
2023-04-13 20:06:00.318 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.67 (Reset: False)
2023-04-13 20:06:00.748 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.studio).
2023-04-13 20:06:00.748 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.67 (Reset: False)
2023-04-13 20:06:00.901 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.camera).
2023-04-13 20:06:00.902 INFO (MainThread) [custom_components.sat.climate] Updating error value to 1.67 (Reset: False)
2023-04-13 20:06:01.065 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.cucina).
2023-04-13 20:06:09.597 DEBUG (MainThread) [custom_components.sat] Manually updated sat data```
Alexwijn commented 1 year ago

I also noticed that climate.bagno is idle. Shouldn't that be heating? If that was the only climate configured before, then SAT was right to stay off.

Alexwijn commented 1 year ago

Oh wait, climate.bagno target temperature is 20 and it's 20.6 there now. So that makes sense.

enryIT commented 1 year ago

Ok, let's give a little context, my bad for not having done this before.

I have a tado system comprised of 1 main thermostat and 6 valve radiators. The main thermostat is named climate.corridoio in HA while TRVs are climate.bagno, climate.camera, climate.disagio, climate.salotto, climate.studio and climate.cucina.

When I configured SAT with the HA configuration flow i set sensor.corridoio_temperature as the inner sensor, then once created as a climate entity I configured again in Climates configuration tab the climate.corridoio as a main climate entity, and every TRVs as rooms climate entity. I then created a generic thermostat entity on HA using the SAT climate entity just created.

What happens whenI change the temperature setpoint on that thermostat? Should SAT update the desiderd temperature on every climate entity added in the configuration flow? Should it only update the temperature of the main climate entity? Does the system even update those desired temperature targets on the climate entities added to SAT itself? I think the issue here is just me not fully understanding how the SAT system is supposed to work, could you please elaborate on this argument?

sergeantd83 commented 1 year ago

You need to set the sensor.tado_current_temperature not the climate entity. The climate entity displays the hvac_mode

enryIT commented 1 year ago

You need to set the sensor.tado_current_temperature not the climate entity. The climate entity displays the hvac_mode

As what? Inner sensor? Yeah my bad, I set the sensor.corridoio_temperature as the inner sensor, not the climate entity, also because the configuration flow let you select only sensor types and not climates :)

Edited the previous message with the correct sensor.

Alexwijn commented 1 year ago

When changing the SAT climate temperature, the main climates should sync up and a open valve will be detected causing the boiler to turn on.

Alexwijn commented 1 year ago

An additional generic climate should also not be needed since SAT is the climate entity that you want to control instead.

enryIT commented 1 year ago

I noticed that SAT actually change the target temperature in the main or other rooms climate entity on some criteria. Sometimes it sets the target temperature on the main climate and sometimes on the TRVs. Should not it set to every climate entities all togheter?

Alexwijn commented 1 year ago

No, only the main climates because you may want the rooms to have a different temperature.

enryIT commented 1 year ago

Ok, so why it sometime sets the target temperature on my TRVs?

Alexwijn commented 1 year ago

You sure it's not listed as a main climate?

Source: https://github.com/Alexwijn/SAT/blob/master/custom_components/sat/climate.py#L952

enryIT commented 1 year ago

I am sure, only climate.corridoio is set as main climate.

Some error appeared in the meantime, all related to this 2023-04-13 21:45:17.684 INFO (MainThread) [custom_components.sat.climate] Updating error value to -0.4 (Reset: False)

enryIT commented 1 year ago

Oh never mind, it is not an error, it's referring to a value called "error value"

Alexwijn commented 1 year ago

That's not an error that's just logging that the error value has changed.

The lowest difference between target and current temperature that SAT can find in all rooms and the inside sensor.

Alexwijn commented 1 year ago

Maybe TADO is doing some magic trying to sync things?

enryIT commented 1 year ago

I don't think so but I can double check, I'll try in the next few hours and report back. Thank you

enryIT commented 1 year ago

Ok, Tado don't set automatically TRVs temperature, for now it didn't happen again so I dn't really know what was the issue before.

I maybe understood instead why the behaviour that I saw was weird to me: the targettemperature set on SAT climate entity is useless.

Let's say I set the SAT thermostat to 10°C and the main climate entity get set to 10°C target temperature. I now set one of my TRV to target temp of 20°C of target temp, leaving SAT to 10°C, the boiler start to heat up.

What is an actual possible usecase of this behaviour?

Alexwijn commented 1 year ago

Correct, SAT climate is leading right now. I had a two way sync one time but that caused too many issues.

I may look into it having it back in with a proper support.

enryIT commented 1 year ago

I'm sorry, I don't understand.

If SAT climate is leading, why the boiler turns on when SAT is set at 10°C and auxiliary climate entities are at 20°C?

enryIT commented 1 year ago

Anyway, this is turning into a chat, do you have some real chat? Something like discord or similar to a group.

Alexwijn commented 1 year ago

https://discord.gg/4RaC3QRk2m

Alexwijn commented 1 year ago

It uses the the SAT climate and the room climate(s) to see if anyone needs heating. If you completely want to turn off SAT you set the HVAC mode to off in the SAT climate.