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
51 stars 12 forks source link

Error #2

Closed TopdRob closed 1 year ago

TopdRob commented 1 year ago

Deze fout is ontstaan door een aangepaste integratie.

Logger: homeassistant Source: custom_components/sat/climate.py:534 Integration: Smart Autotune Thermostat (documentation, issues) First occurred: 07:17:10 (2 occurrences) Last logged: 07:25:10

Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating setpoint = self._calculate_control_setpoint() File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint requested_setpoint = self._heating_curve.value + self._pid.output TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'

Alexwijn commented 1 year ago

Can you provide more details about when the error occurred? Did it happen during the boot process or did it occur randomly while the component was running?

Also, were the sensors still available when the error occurred? Understanding the context of the error and the current state of the system will help us better diagnose and resolve the issue. Thanks!

enryIT commented 1 year ago

I also have this error out of the box so this is reproducible simply by enabling the integration.

The error pops up continuosly after the first time the thermostat is asking for heat. Sensors are all available.

TopdRob commented 1 year ago

This is the full log filtered on errors with the SAT component

2023-04-10 08:41:29.120 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 08:41:52.630 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:03:27.291 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:06:04.718 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:06:22.682 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:06:52.683 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:10:34.857 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:10:52.690 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-10 09:11:22.691 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-11 01:05:38.191 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-11 01:09:20.776 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-11 01:15:28.438 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 582, in _async_inside_sensor_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 689, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 858, in _async_control_pwm_values
    setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-11 01:15:29.431 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'
2023-04-11 01:15:59.432 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 669, in _async_control_heating
    setpoint = self._calculate_control_setpoint()
  File "/config/custom_components/sat/climate.py", line 534, in _calculate_control_setpoint
    requested_setpoint = self._heating_curve.value + self._pid.output
TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'

This could also be related

2023-04-10 11:36:54.313 ERROR (MainThread) [pyotgw.connection] Could not connect to serial device on socket://otgw.local:25238. Will keep trying. Reported error was: Could not open port socket://otgw.local:25238: [Errno -2] Name does not resolve
2023-04-10 11:42:43.354 ERROR (MainThread) [pyotgw.connection] Could not connect to serial device on socket://otgw.local:25238. Will keep trying. Reported error was: Could not open port socket://otgw.local:25238: [Errno -2] Name does not resolve
2023-04-10 11:44:00.690 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 11:44/1
2023-04-10 11:44:00.695 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 11:44/1, retrying...
2023-04-10 11:48:00.736 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 11:48/1
2023-04-10 11:48:00.741 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 11:48/1, retrying...
2023-04-10 11:55:44.421 ERROR (MainThread) [pyotgw.connection] Could not connect to serial device on socket://otgw.local:25238. Will keep trying. Reported error was: Could not open port socket://otgw.local:25238: [Errno -3] Try again
2023-04-10 16:00:00.399 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 16:00/1
2023-04-10 16:00:00.402 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 16:00/1, retrying...
2023-04-10 16:04:09.764 ERROR (MainThread) [pyotgw.connection] Could not connect to serial device on socket://otgw.local:25238. Will keep trying. Reported error was: Could not open port socket://otgw.local:25238: [Errno -3] Try again
2023-04-10 19:12:01.123 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 19:12/1
2023-04-10 19:12:01.126 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 19:12/1, retrying...
2023-04-10 20:31:00.422 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 20:31/1
2023-04-10 20:31:00.425 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 20:31/1, retrying...
2023-04-10 20:52:00.478 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 20:52/1
2023-04-10 20:52:00.486 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 20:52/1, retrying...
2023-04-10 22:16:00.849 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 22:16/1
2023-04-10 22:16:00.855 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 22:16/1, retrying...
2023-04-10 22:24:00.864 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 22:24/1
2023-04-10 22:24:00.868 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 22:24/1, retrying...
2023-04-11 01:14:00.726 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 01:14/2
2023-04-11 01:14:00.728 WARNING (MainThread) [pyotgw.commandprocessor] Command CS failed with SC: 01:14/2, retrying...
2023-04-11 01:19:00.707 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 01:19/2
2023-04-11 01:19:00.711 WARNING (MainThread) [pyotgw.commandprocessor] Command CS failed with SC: 01:19/2, retrying...
2023-04-11 03:43:00.433 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 03:43/2
2023-04-11 03:43:00.436 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 03:43/2, retrying...
2023-04-11 04:10:00.600 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 04:10/2
2023-04-11 04:10:00.603 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 04:10/2, retrying...
2023-04-11 06:05:01.091 WARNING (MainThread) [pyotgw.commandprocessor] Unknown message in command queue: SC: 06:05/2
2023-04-11 06:05:01.096 WARNING (MainThread) [pyotgw.commandprocessor] Command PR failed with SC: 06:05/2, retrying...
Alexwijn commented 1 year ago

I've made some updates and added some safety checks to the code, which may help address the issue you're experiencing. However, based on your logs, I also suspect that there could be a connection issue that's indeed causing the problem.

enryIT commented 1 year ago

Errors on the latest commit


Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 455, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 731, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 822, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/config/custom_components/sat/climate.py", line 269, in async_added_to_hass
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 699, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 876, in _async_control_pwm_values
    if setpoint > max_setpoint:
TypeError: '>' not supported between instances of 'float' and 'NoneType'

2023-04-11 22:55:59.553 ERROR (MainThread) [homeassistant.components.climate] Error while setting up sat platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 312, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 455, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 731, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 822, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/config/custom_components/sat/climate.py", line 269, in async_added_to_hass
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 699, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 876, in _async_control_pwm_values
    if setpoint > max_setpoint:
TypeError: '>' not supported between instances of 'float' and 'NoneType'

2023-04-11 22:56:06.603 ERROR (MainThread) [homeassistant.components.climate] Error while setting up sat platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 312, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 455, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 731, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 822, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/config/custom_components/sat/climate.py", line 269, in async_added_to_hass
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 699, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 876, in _async_control_pwm_values
    if setpoint > max_setpoint:
TypeError: '>' not supported between instances of 'float' and 'NoneType'

2023-04-11 22:58:13.053 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 646, in _async_climate_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 699, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 876, in _async_control_pwm_values
    if setpoint > max_setpoint:
TypeError: '>' not supported between instances of 'float' and 'NoneType'

2023-04-11 22:58:13.624 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140180509521904] '>' not supported between instances of 'float' and 'NoneType'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 199, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1820, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1857, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 216, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 798, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 977, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 838, in _handle_entity_call
    await result
  File "/config/custom_components/sat/climate.py", line 985, in async_set_hvac_mode
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 693, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 876, in _async_control_pwm_values
    if setpoint > max_setpoint:
TypeError: '>' not supported between instances of 'float' and 'NoneType'

2023-04-11 22:59:06.401 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 693, in _async_control_heating
    await self._async_control_pwm_values()
  File "/config/custom_components/sat/climate.py", line 876, in _async_control_pwm_values
    if setpoint > max_setpoint:
TypeError: '>' not supported between instances of 'float' and 'NoneType'```
Alexwijn commented 1 year ago

Could you try again with the latest commit? Your system hasn't been calibrated yet with the overshoot protection value (experimental).

enryIT commented 1 year ago

Now these errors appears when I enable/disable overshoot protection or automatic gains. Also thermostat entity, when set to "heat" doesn't sends opentherm commands to OTGW resulting in boiler doing nothing.


Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/serial_asyncio/__init__.py", line 417, in _call_connection_lost
    self._serial.close()
  File "/usr/local/lib/python3.10/site-packages/serial/urlhandler/protocol_socket.py", line 104, in close
    time.sleep(0.3)
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 159, in protected_loop_func
    check_loop(func, strict=strict)
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 116, in check_loop
    raise RuntimeError(
RuntimeError: Detected blocking call to sleep inside the event loop. Use `await hass.async_add_executor_job()`; This is causing stability issues. Please report issue
2023-04-11 23:29:38.312 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback SerialTransport._call_connection_lost(None)
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/serial_asyncio/__init__.py", line 417, in _call_connection_lost
    self._serial.close()
  File "/usr/local/lib/python3.10/site-packages/serial/urlhandler/protocol_socket.py", line 104, in close
    time.sleep(0.3)
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 159, in protected_loop_func
    check_loop(func, strict=strict)
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 116, in check_loop
    raise RuntimeError(
RuntimeError: Detected blocking call to sleep inside the event loop. Use `await hass.async_add_executor_job()`; This is causing stability issues. Please report issue```
Alexwijn commented 1 year ago

You first have to calibrate it by using the service. I don't have any proper checks for those things yet.

enryIT commented 1 year ago

The same appears without overshoot protections, that was just an example of when the error pops up.

Alexwijn commented 1 year ago

Detected blocking call errors can be safely ignored, they only occur when you changed the setting and the component restarts.

I haven't figured out what causes it yet, but it also isn't causing any problems.

enryIT commented 1 year ago

Ok, I think the original problem is solved with your recent commits. Maybe original OP can confirm and close the issue.

Silvjor commented 1 year ago

The error still exists.

On startup this error shows up once:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 199, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1849, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1889, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 226, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 798, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 981, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 838, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/sat/climate.py", line 895, in async_set_temperature
    await self._async_set_setpoint(temperature)
  File "/config/custom_components/sat/climate.py", line 962, in _async_set_setpoint
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 748, in _async_control_heating
    await self._pwm.update(self._get_requested_setpoint())
  File "/config/custom_components/sat/pwm.py", line 52, in update
    if setpoint is None or setpoint > self._store.retrieve_overshoot_protection_value():
TypeError: '>' not supported between instances of 'float' and 'NoneType'

When setting the temperature on the main SAT component this error shows:

Traceback (most recent call last):
  File "/config/custom_components/sat/climate.py", line 672, in _async_main_climate_changed
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 748, in _async_control_heating
    await self._pwm.update(self._get_requested_setpoint())
  File "/config/custom_components/sat/pwm.py", line 52, in update
    if setpoint is None or setpoint > self._store.retrieve_overshoot_protection_value():
TypeError: '>' not supported between instances of 'float' and 'NoneType'

Tried with different combinations of automatic gains, PWM and PWM overshoot protection.

Also tried setting the overshoot protection value. Unable to do so as there is no option in the integration settings GUI.

On some rare occasions the pyOTGW gives an error on connection sending the PR value. (device is connected via serial) maybe unrelated.

Alexwijn commented 1 year ago

It seems like you do not have the overshoot protection value configured yet. That should not be an issue since it's an optional feature to be enabled (and automatically disabled when we can't find the value).

I just updated the integration that should resolve the issue. Please note that this is a different issue than the original because PWM is fairly new.

enryIT commented 1 year ago

The error still exists.

On startup this error shows up once:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 199, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1849, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1889, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 226, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 798, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 981, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 838, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/sat/climate.py", line 895, in async_set_temperature
    await self._async_set_setpoint(temperature)
  File "/config/custom_components/sat/climate.py", line 962, in _async_set_setpoint
    await self._async_control_heating()
  File "/config/custom_components/sat/climate.py", line 748, in _async_control_heating
    await self._pwm.update(self._get_requested_setpoint())
  File "/config/custom_components/sat/pwm.py", line 52, in update
    if setpoint is None or setpoint > self._store.retrieve_overshoot_protection_value():
TypeError: '>' not supported between instances of 'float' and 'NoneType'

This is because you have not set any overshoot_protection value, so it is really a NoneType.

Also tried setting the overshoot protection value. Unable to do so as there is no option in the integration settings GUI.

You have to use the service called sat.overshoot_protection_value if you want to set a manual value, or sat.start_overshoot_protection_calculation if you want to start the automatic measurement process

  1. Fully open all the TRVs (if you have those)
  2. Manually call the calculation service (be sure the boiler will accept a setpoint value of at least 75°C)
  3. Wait for it to finish
Alexwijn commented 1 year ago

This is because you have not set any overshoot_protection value, so it is really a NoneType.

That is indeed the cause of the issue. Thanks for the explanation! But I just wanted to say that overshoot_protection_value should not be required.

Silvjor commented 1 year ago

Didn't know about the service. But now the error is gone with and without setting the service.

The climate entity created by SAT doesn't trigger the error anymore. But it still stays idle at any temperature. No errors in the log. Other climate inputs do trigger heating

Alexwijn commented 1 year ago

Can you show me the climate attributes of SAT?

Silvjor commented 1 year ago

When off

hvac_modes: off, heat
min_temp: 7
max_temp: 35
target_temp_step: 0.5
preset_modes: none, away, home, sleep, comfort
current_temperature: 21.2
temperature: 16
hvac_action: idle
preset_mode: none
error: -5.24
integral: 0
derivative: 0
proportional: -235.8
history_size: 2
collected_errors: 1
integral_enabled: false
derivative_enabled: true
derivative_raw: 0
current_kp: 45
current_ki: 0
current_kd: 6000
rooms: 
climate.climate_bathroom: 15

setpoint: 10
warming_up: true
valves_open: false
max_relative_mod: 100
heating_curve: 26.8
outside_temperature: 18.1
optimal_coefficient: null
pulse_width_modulation_enabled: false
pulse_width_modulation_state: idle
pulse_width_modulation_duty_cycle: null
overshoot_protection_calculating: false
overshoot_protection_value: 22
friendly_name: Living Room
supported_features: 17

Changes when requesting for heating

temperature: 30

error: 8.76

proportional: 394.2

setpoint: 65

ax_relative_mod: 0
heating_curve: 30.3
Alexwijn commented 1 year ago

Looks like SAT is right, it doesn't need heating:

error: -5.24
temperature: 16
current_temperature: 21.2

Did you add all the TRVs? Please note that the Main Climates are ignored, temperature wise.

Alexwijn commented 1 year ago

Changes when requesting for heating

That looks like it start to heat up. But the hvac_action of SAT is still idle?

Silvjor commented 1 year ago

Heating stays idle on climate entity created by SAT. Changed the position of SAT entity "Climates (main)", "Climates (room) and none at all but still remains idle.

Boiler only starts when asking for heat on other climate entities in other rooms.

Alexwijn commented 1 year ago

Can you turn on debug logging for the integration and give me some logs?

Silvjor commented 1 year ago

Events I triggered temp SAT: climate.living_room temp other climate_bathroom

18:42 temp SAT set to  7.0 temp other 15.0  (IDLE)
18:43 temp SAT set to 35.0 temp other 15.0  (IDLE)
18:44 temp SAT set to 35.0 temp other 30.0 (changed to heating)
18:45 temp SAT set to 35.0 temp other 15.0 (stays heating)
18:46 temp SAT set to 15.0 temp other 15.0 (idle sleep)

Full log:

2023-05-07 18:39:25.828 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:25.842 INFO (MainThread) [custom_components.sat.climate] Set max setpoint to 65.0
2023-05-07 18:39:25.847 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:39:25.877 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:25.909 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:26.107 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.climate_bathroom).
2023-05-07 18:39:34.614 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:34.633 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:34.647 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:34.662 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:34.679 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:37.096 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.climate_bathroom).
2023-05-07 18:39:38.224 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.climate_bathroom).
2023-05-07 18:39:41.087 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:41.964 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:50.066 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:57.360 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:39:59.167 DEBUG (MainThread) [custom_components.sat.climate] Inside Sensor Changed.
2023-05-07 18:39:59.176 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.climate_bathroom).
2023-05-07 18:39:59.246 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:40:06.680 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:40:22.620 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:40:23.091 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:40:35.389 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:42:09.252 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:13.304 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:18.367 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:18.968 INFO (MainThread) [custom_components.sat.climate] Updating error value to 13.8 (Reset: True)
2023-05-07 18:42:18.968 INFO (MainThread) [custom_components.sat.climate] Outside of deadband, we are warming up
2023-05-07 18:42:18.972 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:42:18.987 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:42:18.988 INFO (MainThread) [custom_components.sat.climate] Updating error value to -9.2 (Reset: True)
2023-05-07 18:42:19.006 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:42:19.016 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:42:19.017 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:42:19.036 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:42:19.044 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:19.080 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:42:19.081 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:42:19.086 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:42:19.098 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:19.133 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:42:19.165 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:42:19.194 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:42:19.221 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:42:19.245 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:42:19.267 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:42:25.846 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:42:25.873 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:42:25.897 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:42:34.980 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:37.007 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:42.073 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:51.393 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:42:55.847 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:42:55.875 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:42:55.899 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:42:58.686 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:02.738 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:07.801 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:17.990 INFO (MainThread) [custom_components.sat.climate] Updating error value to 13.82 (Reset: True)
2023-05-07 18:43:17.991 INFO (MainThread) [custom_components.sat.climate] Outside of deadband, we are warming up
2023-05-07 18:43:17.997 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:43:18.017 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:43:18.029 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:43:18.044 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:43:18.046 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:43:18.059 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:43:18.069 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:18.090 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:43:18.091 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:43:18.094 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:43:18.130 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:43:18.151 INFO (MainThread) [custom_components.sat.climate] Set max relative mod to 0
2023-05-07 18:43:18.157 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:18.184 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:43:18.207 INFO (MainThread) [custom_components.sat.climate] Set max relative mod to 0
2023-05-07 18:43:18.250 INFO (MainThread) [custom_components.sat.climate] Set max relative mod to 0
2023-05-07 18:43:18.271 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:43:18.293 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:43:18.316 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:43:18.337 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:43:24.414 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:25.848 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:43:25.880 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:43:25.903 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:43:31.507 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:35.760 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:40.826 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:43:55.850 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:43:55.881 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:43:55.903 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:43:57.235 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:04.529 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:13.847 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:15.874 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:17.499 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.climate_bathroom).
2023-05-07 18:44:17.505 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:44:17.523 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:44:17.525 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:44:17.554 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:44:17.588 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:44:17.609 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:44:17.628 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:17.650 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:44:17.651 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:44:17.668 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:44:17.697 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:44:17.725 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:44:20.940 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:24.182 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:25.851 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:44:25.881 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:44:25.907 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:44:37.553 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:41.605 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:46.668 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:48.899 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:53.962 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:44:55.852 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:44:55.887 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:44:55.912 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:44:58.014 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:03.281 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:05.308 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:10.374 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:14.627 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:19.698 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:21.725 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:22.399 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.climate_bathroom).
2023-05-07 18:45:22.402 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:45:22.436 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:45:22.461 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:45:25.853 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:45:25.883 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:45:25.908 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:45:26.993 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:29.019 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:31.045 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:36.109 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:38.339 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:43.402 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:52.722 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:54.749 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:45:55.853 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:45:55.884 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:45:55.911 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:45:59.814 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:04.068 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:11.160 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:16.428 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:20.480 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:25.855 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:25.885 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 65
2023-05-07 18:46:25.911 INFO (MainThread) [custom_components.sat.climate] Set central heating to 1
2023-05-07 18:46:27.773 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:30.365 INFO (MainThread) [custom_components.sat.climate] Updating error value to 13.8 (Reset: True)
2023-05-07 18:46:30.365 INFO (MainThread) [custom_components.sat.climate] Outside of deadband, we are warming up
2023-05-07 18:46:30.371 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:30.394 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:46:30.395 INFO (MainThread) [custom_components.sat.climate] Updating error value to -6.18 (Reset: True)
2023-05-07 18:46:30.406 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:30.422 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:46:30.423 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:30.435 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:46:30.470 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:46:30.476 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:30.498 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:46:30.503 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:30.509 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:46:30.535 INFO (MainThread) [custom_components.sat.climate] Set max relative mod to 100
2023-05-07 18:46:30.541 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:30.568 INFO (MainThread) [custom_components.sat.climate] Set max relative mod to 100
2023-05-07 18:46:30.596 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:46:30.620 INFO (MainThread) [custom_components.sat.climate] Set max relative mod to 100
2023-05-07 18:46:30.643 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:46:30.663 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:30.685 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:46:30.686 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:30.701 DEBUG (MainThread) [custom_components.sat.climate] Climate State Changed (climate.living_room).
2023-05-07 18:46:30.703 INFO (MainThread) [custom_components.sat.climate] Running normal cycle
2023-05-07 18:46:30.713 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:46:30.736 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:46:30.757 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:46:30.784 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:46:30.819 INFO (MainThread) [custom_components.sat.climate] Set control setpoint to 10
2023-05-07 18:46:30.840 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:46:30.860 INFO (MainThread) [custom_components.sat.climate] Set central heating to 0
2023-05-07 18:46:32.836 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:35.877 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:36.888 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:41.144 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:42.156 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:44.182 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:49.248 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
2023-05-07 18:46:53.501 DEBUG (MainThread) [custom_components.sat] Manually updated sat data
Alexwijn commented 1 year ago

It appears that I may not have fully understood the issue at hand. Based on the logs you provided, everything seems to be functioning as intended and the hvac_action is correctly set to heating.

Silvjor commented 1 year ago
18:42 temp SAT set to  7.0 temp other 15.0  (IDLE)
18:43 temp SAT set to 35.0 temp other 15.0  (IDLE)
18:44 temp SAT set to 35.0 temp other 30.0 (changed to heating)
18:45 temp SAT set to 35.0 temp other 15.0 (stays heating)
18:46 temp SAT set to 15.0 temp other 15.0 (idle sleep)

I read this as:

False OR False = False
True  OR False = False (should be True?)
True  OR True  = True (correct)
True  OR False = True (logic of the second statement should say this is False)
False OR False = False

In older versions of SAT climate produced heat. The update with PWM added changed that only the SAT climate could not be set.

Alexwijn commented 1 year ago

Are you referring to the delay? Because otherwise I feel like it works just fine. According to the logs it runs a normal cycle, and doesn't touch PWM.

Alexwijn commented 1 year ago

Ohh I think I finally see the issue. So only if the non-main climates wants heat, it works, otherwise it doesn't?

Silvjor commented 1 year ago

Yes only the climates not created by SAT but are added to SAT in the configuration

Alexwijn commented 1 year ago

Can you describe all configurations, general, climates, etc?

Silvjor commented 1 year ago

Clean install, left at default. Only the SAT climate and one thermostat climate in the "Climates (rooms)"

PyOTGW port at /dev/ttyAMA0 and outside climate on I think Buienradar

Alexwijn commented 1 year ago

Wait, you added the SAT climate as a room in SAT?

Silvjor commented 1 year ago

Yes, this was for me the last known working setup. played with these settings in every combination possible without succes.

Alexwijn commented 1 year ago

You should definitely not do that, that may cause unexpected behavior. I'll try to prevent that in one of the future updates.

Alexwijn commented 1 year ago

Try the default installation without adding climates to the Multi-Room settings page. And see if that helps.

sergeantd83 commented 1 year ago

When off

hvac_modes: off, heat
min_temp: 7
max_temp: 35
target_temp_step: 0.5
preset_modes: none, away, home, sleep, comfort
current_temperature: 21.2
temperature: 16
hvac_action: idle
preset_mode: none
error: -5.24
integral: 0
derivative: 0
proportional: -235.8
history_size: 2
collected_errors: 1
integral_enabled: false
derivative_enabled: true
derivative_raw: 0
current_kp: 45
current_ki: 0
current_kd: 6000
rooms: 
climate.climate_bathroom: 15

setpoint: 10
warming_up: true
valves_open: false
max_relative_mod: 100
heating_curve: 26.8
outside_temperature: 18.1
optimal_coefficient: null
pulse_width_modulation_enabled: false
pulse_width_modulation_state: idle
pulse_width_modulation_duty_cycle: null
overshoot_protection_calculating: false
overshoot_protection_value: 22
friendly_name: Living Room
supported_features: 17

Changes when requesting for heating

temperature: 30

error: 8.76

proportional: 394.2

setpoint: 65

ax_relative_mod: 0
heating_curve: 30.3

Also noticed that the overshoot_protection_value is pretty low. Can you run the overshoot protection calculation service again and choose the automatic solution? Then can you report this value?

Alexwijn commented 1 year ago

As the original issue has been resolved, I will be closing this thread. However, if you encounter any further problems, please feel free to create a new issue and we will be happy to assist you.