marvinroger / hass-addon-tiko

Control your tiko / Mon Pilotage Elec heaters from Home Assistant
10 stars 1 forks source link

L'interval de temps entre chaque update n'est pas respecté #8

Closed JSteunou closed 8 months ago

JSteunou commented 8 months ago

Dans les options on peut mettre un update interval sauf qu'il n'est pas respecté (ce n'était pas le cas non plus avant la 1.4.1 avec le setInterval)

Le problème se situe ici update se rappelle lui même. Il y a bien une tempo pour respecter à minima 1 min mais c'est une constante.

L'option est respectée seulement la 1e fois dans le constructeur ici

Il faudrait soit :

Swiiney commented 8 months ago

Hello, je ne sais pas si il y a un rapport mais depuis la 1.4.1 j'ai des mises à jour bizarres. Le temps entre 2 mise à jour est devenu très long. Ci-joint la courbe d'un de mes thermomètres Tiko (Je suis passé sur la 1.4.1 à 16h le 2/3 au milieu de la courbe). image Toutes mes courbes sont sur le même modèle.

marvinroger commented 8 months ago

@JSteunou en effet, j'ai publié la 1.4.2 qui restaure le setInterval comme à l'origine.

En fait, le setInterval avait toute sa place : si update se rappelle tout seul à la fin, c'est en fait voulu.

Imagine que pendant l'appel d'API dans update, on change la température de consigne. La température n'aurait été mise à jour qu'au prochain appel de update, soit au plus tard dans updateIntervalMinutes (donc potentiellement dans longtemps). En s'appelant à la fin de la fonction, on s'assure que le changement d'état sera bien quasi instantané.

Ce n'est pas non plus redondant : si updateRequested vaut false parce qu'il n'y a pas eu de mouvement, on sort tout de suite de la fonction. 😉

marvinroger commented 8 months ago

Le updateIntervalMinutes ne veut pas dire "il y'aura au plus un appel tous les updateIntervalMinutes", c'est l'intervalle maximum entre deux appels.

Scénario :

Dans le cas nominal, on a donc l'état qui est mis à jour tous les updateIntervalMinutes. En revanche, quand un ordre est donné, ce n'est pas tout à fait le cas pour des raisons de réactivité.

Donc si, c'était bien le cas avant la 1.4.1. 😉

JSteunou commented 8 months ago

Merci pour le scénario déroulé c'est plus clair, effectivement j'étais passé à côté de updateRequested