jmcollin78 / versatile_thermostat

A full featured Thermostat for Home Assistant: presets, window, motion, presence and overpowering management
MIT License
327 stars 34 forks source link

VTherm doesn't respect target temperature #429

Closed cdenfert closed 7 months ago

cdenfert commented 8 months ago

Depuis quelques temps j'ai un problème, soit à partir de la 6.0.0 ou alors depuis une version récente de home assistant je ne sais pas, les thermostats ne respectent plus les consignes quand je change de preset. Je précise que je change via des automatisations. Le thermostat continue de chauffer alors que je suis bien au dessus de la consigne.

un de mes thermostats: hvac_modes:

Je suis en mode eco (17°) et la thermostat continue de maintenir à 20°. Après un démarrage à froid de home assitant ça fonctionne, mais j'ai l'impression que dès que change le preset, les problèmes commencent. on le voit bien sur mon graphe: image

Si vous avez besoin de plus d'informations, je suis disponible. Et merci pour le temps que vous donnez, c'est de loin la meilleure implémentation de thermostat pour HA.

jmcollin78 commented 8 months ago

Hello @cdenfert,

Tu penseras à formatter le code avec le bouton <> sinon c'est difficilement lisible. Ensuite, ca me parait vraiment curieux, c'est tellement énorme comme bug. Je suis comme toi en type over_switch sur tous mes radiateurs et tout fonctionne normalement. Je suis en 6.0.4.

Donc il faut chercher ce qui dans ton environnement fait que ça ne fonctionne pas.

Essaye déjà de regarder dans les logs si tu vois des erreurs relatives à Versatile Thermostat. Est-ce que tu en as d'autres VTherm ? Ont-ils tous le même problème ? Utilises-tu une configuration centrale ? A quoi correspond l'état 100% sur la courbe ? Peux-tu faire la même courbe avec le power_percent (pour vérifier la bonne régulation) ?

jmcollin78 commented 8 months ago

Dans les attributs que tu m'as donné, le radiateur devrait être éteint:

hvac_action: idle
on_percent: 0
power_percent: 0
on_time_sec: 0
off_time_sec: 420
is_device_active: false

Est-ce bien le cas ? Peux-tu vérifier le bon fonctionnement du switch switch.chauffage_chambre en le commandant directement ?

cdenfert commented 8 months ago

Ok, je vais essayer de faire tout ça, le truc c'est que je n'avais pas de problème avant, c'est récent. Les switch fonctionnent bien. J'ai 6 thermostats et j'ai le même problème, j'utilise la configuration centrale pour quelques parties. l'état 100% c'est le hvac_action, 100% -> heating, 0 -> idle.

j'ai affiché en vert le on_percent, je ne sais pas si c'est pareil ou non, mais je n'ai pas le power_percent, le graph n'est pas super mais on voit à 11h quand je repasse en mode eco, que le on_percent retombe à 0, mais que le thermostat continue de chauffer. Ensuite vers 13h30 j'ai redémarré HA et là ça c'est comporté normalement. image

Je ne sais pas ou chercher ailleurs, je n'ai pas le problème en revanche quand je suis en mode away (via la détection de présence) Je n'ai rien dans les logs

jmcollin78 commented 8 months ago

ok, donc on voit le pourcentage de puissance est bon (on voyait mieux sur la première courbe). La courbe verte est > 0 quand il faut chauffer et tend vers 0 quand y a plus besoin de chauffer. Et on voit que le switch est allumé alors que le percent est nul et que VTherm dit inactif.

J'ai une mauvaise nouvelle : je ne comprends pas ce qui se passe. Comme si le switch était commandé par qqe-chose d'autre. En plus il ne fait que des pics et pas des périodes entières de chauffe comme le ferait le VTherm. Tu devrais avoir des créneaux et pas des pics.

Ca ressemble plus à du brouillage ou de la perturbation. T'as pas modifié ton réseau récemment ? T'es en Wifi ou en Zigbee ? Tu peux tenter un retour en VTherm 5.4 (ça devrait être compatible) pour voir si ça fait pareil.

cdenfert commented 8 months ago

on voit peut être un peu mieux image

Le retour en 5.4 va être compliqué, j'ai tout adapté pour les nouvelles entités de température etc... :( je n'ai rien changé au niveaux du réseau, mes switches sont des shelly plus 1 en wifi (ce sont les seuls que j'ai en wifi) plus une soixantaine de device en zigbee . Pour les pics c'est que je n'ai pas réussi à faire mieux sur le graph mais ça chauffe bien plusieurs minutes à intervalle régulier. Ah si j'ai mis tout mes VTherm dans un group par soucis de simplicité quand je veux tout éteindre ou compté combien sont en marche, est-ce que ça pourrait avoir une incidence ?

jmcollin78 commented 8 months ago

Ah si j'ai mis tout mes VTherm dans un group par soucis de simplicité quand je veux tout éteindre ou compté combien sont en marche, est-ce que ça pourrait avoir une incidence ?

Y a le 'controle centralisé' qui sert exactement à ça: https://github.com/jmcollin78/versatile_thermostat/blob/main/README-fr.md#le-contr%C3%B4le-centralis%C3%A9 mais ca devrait pas géner.

Ecoute je ne sais pas ce qui se passe. La courbe blanche devrait être continue, ca devrait arrêter de chauffer quand la consigne est dépassée, bref, je comprends pas ce que je vois.

Tu m'en vois désolé, y a un truc chez toi qui provoque ce comportement, la question c'est quoi. Je pense que si il y avait un bug comme ça, j'en aurai entendu parlé.

Tu m'en vois désolé mais je ne sais pas. Si tu trouves ça m'intéresse, si t'as d'autres questions n'hésites pas

EDIT: donne moi les logs au niveau INFO quand même sur une période ou ça chauffe a tord

cdenfert commented 7 months ago

J'ai activé les logs, mais le problème ne s'est pas reproduit depuis hier. Je les posterai ici si jamais je le rencontre à nouveau.

cdenfert commented 7 months ago

ça ne s'est pas reproduit, problème qui n'en était pas un :) Désolé pour la perte de temps.

jmcollin78 commented 7 months ago

Pas de soucis. C'était curieux. Si ça se reproduit n'hésites pas.

cdenfert commented 7 months ago

Bonjour, encore moi, j'ai reproduis mon problème et je crois que c'est en changeant à chaud des paramètres dans la configuration centrale. Après avoir redémarré HA tout est rentré dans l'ordre. On peut le voir vers 21h30, ça continuait alors que température cible était largement atteinte. image

je poste les logs aussi au cas où, vers 21h30 donc. home-assistant.log

jmcollin78 commented 7 months ago

ok. Ca c'est exactement ce que j'ai touché en 6.0. Je vais regarder merci pour la reproduction et les logs. Tu as changé la température de la configuration centrale vers 21h30 ? Les Number de température à gauche sont ceux de la configuration centrale ?

jmcollin78 commented 7 months ago

Bon, je viens de tenter de reproduire ton cas sans succès. Ca fonctionne bien lorsque je change la temp centrale. C'est bien pris en compte, le cycle s'adapte bien et lorsque la température dépasse la target, la chauffage s'arrête. Donc au niveau de l'algo lui même pas de soucis.

Par contre, quand je regarde tes logs, là on voit bien le soucis:

2024-03-31 20:51:05.421 ERROR (MainThread) [homeassistant.core] Error executing service: <ServiceCall switch.turn_off (c:01HTAXKC1VF02NWVRJXA29QNZX): entity_id=['switch.chauffage_chambre_sarah']>
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aioshelly/rpc_device/wsrpc.py", line 430, in _rpc_call
    resp = await future
           ^^^^^^^^^^^^
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aioshelly/rpc_device/wsrpc.py", line 428, in _rpc_call
    async with async_timeout.timeout(timeout):
  File "/usr/local/lib/python3.12/site-packages/async_timeout/__init__.py", line 141, in __aexit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.12/site-packages/async_timeout/__init__.py", line 228, in _do_exit
    raise asyncio.TimeoutError
TimeoutError

En gros, VTherm n'a pas réussi a éteindre le switch.chauffage_chambre_sarah: la commande est en timeout. Et donc le switch va certainement resté allumé alors que VTherm lui a demandé de s'éteindre. Ca c'est une cause de surchauffe.

Juste avant, on peut voir qu'il fonctionnait bien :

2024-03-31 20:48:10.416 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_sarah-switch.chauffage_chambre_sarah - start heating for 2 min 45 sec

2024-03-31 20:50:55.419 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_sarah-switch.chauffage_chambre_sarah - stop heating for 4 min 4 sec

Tu a donc un soucis de couverture réseau (ou interférence) sur ce switch là. Je ne sais pas si il est Wifi ou Zigbee ou quoi mais c'est par là qu'il faut chercher.

Un peu après, il se remet à marcher:

2024-03-31 20:54:59.420 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_sarah-switch.chauffage_chambre_sarah - start heating for 2 min 30 sec

2024-03-31 20:57:29.422 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_sarah-switch.chauffage_chambre_sarah - stop heating for 4 min 19 sec

Je vois bien le changement de la température centrale:

2024-03-31 21:23:09.840 INFO (MainThread) [custom_components.versatile_thermostat.config_flow] Recreating entry ceba8e9f4b33316d5fa9b2add5a46e6a due to configuration change. New config is now: {'use_window_feature': True, 'use_motion_feature': True, 'use_power_feature': True, 'use_presence_feature': False, 'use_main_central_config': False, 'use_tpi_central_config': False, 'use_window_central_config': False, 'use_motion_central_config': False, 'use_power_central_config': False, 'use_presets_central_config': False, 'use_presence_central_config': False, 'use_advanced_central_config': False, 'thermostat_type': 'thermostat_central_config', 'name': 'Central configuration', 'external_temperature_sensor_entity_id': 'sensor.temp_exterieur', 'temp_min': 12.0, 'temp_max': 24.0, 'tpi_coef_int': 0.6, 'tpi_coef_ext': 0.015, 'frost_temp': 10.0, 'eco_temp': 17.0, 'comfort_temp': 19.0, 'boost_temp': 20.0, 'eco_ac_temp': 0.0, 'comfort_ac_temp': 0.0, 'boost_ac_temp': 0.0, 'window_delay': 120, 'window_auto_open_threshold': 3.0, 'window_auto_close_threshold': 0.0, 'window_auto_max_duration': 30, 'motion_delay': 1, 'motion_off_delay': 5, 'motion_preset': 'comfort', 'no_motion_preset': 'eco', 'power_temp': 13.0, 'power_sensor_entity_id': 'sensor.power_edf', 'max_power_sensor_entity_id': 'input_number.max_power', 'frost_away_temp': 17.0, 'eco_away_temp': 17.0, 'comfort_away_temp': 17.0, 'boost_away_temp': 17.0, 'minimal_activation_delay': 10, 'security_delay_min': 90, 'security_min_on_percent': 0.5, 'security_default_on_percent': 0.1, 'motion_sensor_entity_id': None, 'presence_sensor_entity_id': None, 'add_central_boiler_control': False, 'window_action': 'window_turn_off', 'use_central_boiler_feature': False, 'step_temperature': 0.1, 'central_boiler_activation_service': None, 'central_boiler_deactivation_service': None}
2024-03-31 21:23:09.842 INFO (MainThread) [custom_components.versatile_thermostat] Service versatile_thermostat.reload called: reloading integration

Avec le rechargement des VTherms concernés. Donc pas de soucis de ce coté là non plus à priori.

jmcollin78 commented 7 months ago

Je vois autre chose de curieux pour le climate_chambre. Est-ce celui là qui pose soucis ? Après un changement de la config centrale à 21h27:

2024-03-31 21:27:55.888 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_chambre-switch.chauffage_chambre - start heating for 7 min 0 sec
...
2024-03-31 21:30:11.301 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_chambre-switch.chauffage_chambre - start heating for 7 min 0 sec
...
2024-03-31 21:30:26.678 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_chambre-switch.chauffage_chambre - start heating for 7 min 0 sec

En gros il chauffe a fond. Et il ne récupère pas la température:

2024-03-31 21:27:55.742 WARNING (MainThread) [custom_components.versatile_thermostat.prop_algorithm] Proportional algorithm: calculation is not possible cause target_temp or current_temp is null. Heating/cooling will be disabled

Ca c'est moins normal. As-tu des soucis sur le thermomètre de chambre ?

Je pense que oui, un peu plus tard, on voit le VTherm passer en mode sécurité:

2024-03-31 22:54:11.323 WARNING (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-climate_chambre - No temperature received for more than 90.0 minutes (dt=91.5, dext=111.1) and on_percent (100.00 %) is over defined value (50.00 %). Set it into safety mode
2024-03-31 22:54:11.323 INFO (MainThread) [custom_components.versatile_thermostat.const] VersatileThermostat-climate_chambre - Sending event EventType.TEMPERATURE_EVENT with data: {'last_temperature_measure': '2024-03-31T21:22:38.373327+02:00', 'last_ext_temperature_measure': '2024-03-31T21:03:04.800851+02:00', 'current_temp': 17.09, 'current_ext_temp': 9.89, 'target_temp': 19.5}
2024-03-31 22:54:11.324 INFO (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-climate_chambre - Set preset_mode: security force=False
2024-03-31 22:54:11.324 INFO (MainThread) [custom_components.versatile_thermostat.const] VersatileThermostat-climate_chambre - Sending event EventType.PRESET_EVENT with data: {'preset': 'security'}
2024-03-31 22:54:11.325 INFO (MainThread) [custom_components.versatile_thermostat.const] VersatileThermostat-climate_chambre - Sending event EventType.SECURITY_EVENT with data: {'type': 'start', 'last_temperature_measure': '2024-03-31T21:22:38.373327+02:00', 'last_ext_temperature_measure': '2024-03-31T21:03:04.800851+02:00', 'current_temp': 17.09, 'current_ext_temp': 9.89, 'target_temp': 19.5}

et à partir de ce moment là il est bloqué sur 100% de chauffe:

2024-03-31 22:54:11.325 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-climate_chambre-switch.chauffage_chambre - start heating for 7 min 0 sec

Je pense que ton paramètre de sécurité security_default_on_percent est mal configuré.

Tu peux me dire ce tu as dans ces paramètres là:

security_delay_min: 90
security_min_on_percent: 0.5
security_default_on_percent: 0.1

Tu dois avoir 1 et non pas 0.1.

jmcollin78 commented 7 months ago

I have done some improvement to better manage the security mode which was certainly your problem. I hope this will fix the bug : https://github.com/jmcollin78/versatile_thermostat/releases/tag/6.2.1

If you have Zigbee thermomter, you can activate the last_seen attribute of your thermometer and add it to the VTherm configuration. This has been added on 6.2.0 and will drastically reduce the false security mode.

jmcollin78 commented 7 months ago

I close the issue, please reopen if you experience it another time (with logs and VTherm attributes when the problem occurs please).