Bug de récupération de la dernière position connue lorsque la condition change

Je n’invente rien…
Quand est bug est aléatoire, c’est super pénible pour résoudre le problème… Mais là, ce que j’avance dans mes dires, je peux le reproduire à tous les coups et j’explique justement dans un post plus haut comment mettre en place le test qui prouve ce que je dis.
Donc quand je lis que ce n’est pas possible, c’est un peu… :upside_down_face:

Ok tu as raison j’ai tord a 100% ya un bug dans le code tu l’as bien montrer je te crois. Malheureusement c’est a un niveau qui est au delà de mes compétences je ne vais donc pas pouvoir le corriger désolé.

Le but n’est pas d’avoir raison ou tord mais plutôt d’aider, de faire évoluer, de corriger.
Là, j’avoue que d’expliquer 36 fois la même chose joue légèrement sur les nerfs.
Surtout que je pense avoir fourni un max d’infos sur un comportement précis en plus de montrer comment reproduire le symptôme.

Tout a fait c’est moi qui n’ai pas compris dès le début et je n’aurais pas du insister mais juste relire jusqu’à comprendre. Malheureusement comme tu l’as vu ce bug est compliqué et au delà de mes capacité (la preuve tu as du l’expliquer plein de fois et même maintenant j’ai toujours du mal a le comprendre), je ne peux donc pas prétendre a la corriger. A voir si quelqu’un d’autre le trouve.

Je n’avais pas non plus compris le problème.
Je m’y suis déjà trouve confronté mais je n’avais pas réussi à reproduire.

En attendant une correction,
Si tu met ta condition d’équipement dans toutes tes conditions de positionnement, ça devrait passer au dessus de bug ( je n’ai pas encore testé)

@Loic si en cas de condition d’équipement nok tu supprimes le mode en cours, es que ça ne résoudrait pas le problème car dans se cas au prochain cycle de vérification, vu que le mode changera il devrait appliquer la position

Oui ça passe ça, c’est que j’expliquais dans le post où j’indique le dernier test réalisé.

Néanmoins entre une solution de contournement et le problème qui n’intervient que rarement au final… Je préfère laisser en état car c’est plus propre, ça ne multiplie pas la même condition.

Dans mon cas, cela n’arrive que quand la température max du jour indiquée par la plugin météo passe à > 21 alors qu’avant, dans la même journée, c’était en dessous.

Donc c’est gênant de temps en temps mais pas dramatique. Du moins dans mon cas.

Apres, je ne sais pas si le plugin est beaucoup utilisé (pourtant, il est très bien une fois que sait comment il fonctionne).

Bon je suis pas sûr mais je crois que j’ai le même problème.

J’ai sur un volet une exception qui ferme mes volets à 24 quand il fait plus de 22 dehors et luminosité à plus de 35000.
J’ai une condition si variable = jour et time > à une autre variable alors volet à 99.

Tout l’après midi jusqu’à 16h00 l’exception était valable. A 16h00 elle ne l’est plus parce que la luminosité a diminuée. Le volet s’est réouvert à 99 puis mis en gestion autodésactivée car il attendait une position a 24. Pourtant le log indiquait bien que c’est la condition qui s’appliquait et pas l’exception. POurtant j’avais dans le log :

113|[2022-05-19 16:00:02]DEBUG : [Chambre Elias][Volets Elias] Calcul de positionnement - Conditions non remplies : #12706#  == 'Hivers' et average(#8711#,30 min) > 15000 et #4215# != 'Présent' Elévation = -0.3°-90 Azimuth = 156°-270° (99 %)
0114|[2022-05-19 16:00:02]DEBUG : [Chambre Elias][Volets Elias] Calcul de positionnement - Conditions non remplies : #11709# == "Jour" et Variable(Ambilight) == 1 et #time# > variable(OuvertureVolet,0900) et #4215# != 'Absent' Elévation = -0.3°-90 Azimuth = 0°-360° (99 %)
0115|[2022-05-19 16:00:02]DEBUG : [Chambre Elias][Volets Elias] Calcul de positionnement - Conditions remplies : #11709# == "Jour" et #time# > variable(OuvertureVolet,0855) et #4215# == 'Absent' Elévation = -0.3°-90 Azimuth = 0°-360° (99 %)
0116|[2022-05-19 16:00:02]DEBUG : [Chambre Elias][Volets Elias] Position actuelle : 99 % → Position cible : 24 %

Bonjour,

J’utilise depuis peu ce plugin, en test sur un seul volet pour le moment, et je pense rencontrer le même genre de problème : de façon aléatoire, lorsque les conditions sont remplies, le volet ne bouge pas (comme si la commande n’avait pas été envoyée), et le plugin suspend la gestion automatique sous prétexte que le volet n’est pas à la bonne position.

Par exemple ce matin :

[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Démarrage de la gestion automatique 
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Ecart avec la dernière position connue : 0 %
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Calcul de positionnement - Action par défaut : Ne rien faire
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Le mode ne correspond pas : Jour Semaine != Jour WE Férié
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Condition remplie : #853#=="Travail" and #11246#==1 and #time#>630 and #7582#>=10 and #985#!=0  (99 %)
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
[2022-06-08 06:59:04][DEBUG] : [Cuisine][_Volet 1] Positionnement à 99 %
[2022-06-08 06:59:39][DEBUG] : [Cuisine][_Volet 1] Déclenchement de l'action immédiate : Array (     [sunshutter_id] => 810     [event_id] => 7582     [value] => 48     [datetime] => 2022-06-08 06:59:39     [listener_id] => 312 ) 
[2022-06-08 06:59:39][DEBUG] : [Cuisine][_Volet 1] Démarrage de la gestion automatique 
[2022-06-08 06:59:39][DEBUG] : [Cuisine][_Volet 1] Ecart avec la dernière position connue : 100 %
[2022-06-08 06:59:39][DEBUG] : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
[2022-06-08 07:00:10][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 1 minutes
[2022-06-08 07:00:10][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 1 minutes
[2022-06-08 07:00:10][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 179 minutes
[2022-06-08 07:01:05][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 1 minutes
[2022-06-08 07:02:05][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 2 minutes
[2022-06-08 07:03:05][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 3 minutes
[2022-06-08 07:03:41][DEBUG] : [Cuisine][_Volet 1] Déclenchement de l'action immédiate : Array (     [sunshutter_id] => 810     [event_id] => 7582     [value] => 60     [datetime] => 2022-06-08 07:03:40     [listener_id] => 312 ) 

Ou un soir ce cette semaine :

[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Démarrage de la gestion automatique 
[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Ecart avec la dernière position connue : 0 %
[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Calcul de positionnement - Action par défaut : Ne rien faire
[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Condition remplie : #7582#<=3 and #7047#<=3 or (#7582#<20 and #7580#==1) (0 %)
[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Position actuelle : 99 % → Position cible : 0 %
[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
[2022-06-04 22:19:35][DEBUG] : [Cuisine][_Volet 1] Positionnement à 0 %
[2022-06-04 22:20:07][DEBUG] : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
[2022-06-04 22:20:07][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 0 minutes
[2022-06-04 22:20:07][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 180 minutes
[2022-06-04 22:21:05][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 1 minutes
[2022-06-04 22:22:06][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 2 minutes
[2022-06-04 22:23:05][DEBUG] : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (180 minutes) : 3 minutes
[2022-06-04 22:23:36][DEBUG] : [Cuisine][_Volet 1] Déclenchement de l'action immédiate : Array (     [sunshutter_id] => 810     [event_id] => 7047     [value] => 0     [datetime] => 2022-06-04 22:23:36     [listener_id] => 312 ) 

Bonjour,

Je me réponds à moi-même. Pour palier à ce problème, j’ai mis le délai de reprise à 5min (au lieu des 180min qui me semblaient plus intéressante pour une utilisation au quotidien), et voici ce que j’ai eu ce matin (heureusement que je n’étais plus sur 180min d’attente…) :

0280|[2022-06-11 07:15:08]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0281|[2022-06-11 07:15:08]DEBUG : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
0282|[2022-06-11 07:15:08]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
0283|[2022-06-11 07:15:08]DEBUG : [Cuisine][_Volet 1] Positionnement à 99 %
0284|[2022-06-11 07:16:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
0285|[2022-06-11 07:17:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 1 minutes
0286|[2022-06-11 07:18:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 2 minutes
0287|[2022-06-11 07:19:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 3 minutes
0288|[2022-06-11 07:20:07]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0289|[2022-06-11 07:20:07]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0290|[2022-06-11 07:20:07]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 1 minutes
0291|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 5 minutes
0292|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Délai de reprise atteint : réactivation de la gestion automatique
0293|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Démarrage de la gestion automatique 1
0294|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions non remplies : #8578# == 'Actif' && (#4480# > 5000 || #4481# > 5000)   Elévation = 8°-90 Azimuth = 67°-129° (15 %)
0295|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0296|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
0297|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
0298|[2022-06-11 07:21:05]DEBUG : [Cuisine][_Volet 1] Positionnement à 99 %
0299|[2022-06-11 07:22:06]DEBUG : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
0300|[2022-06-11 07:23:04]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 1 minutes
0301|[2022-06-11 07:24:04]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 2 minutes
0302|[2022-06-11 07:25:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 3 minutes
0303|[2022-06-11 07:25:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 3 minutes
0304|[2022-06-11 07:25:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 2 minutes
0305|[2022-06-11 07:26:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0306|[2022-06-11 07:27:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 5 minutes
0307|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 6 minutes
0308|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Délai de reprise atteint : réactivation de la gestion automatique
0309|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Démarrage de la gestion automatique 1
0310|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions non remplies : #8578# == 'Actif' && (#4480# > 5000 || #4481# > 5000)   Elévation = 8°-90 Azimuth = 67°-129° (15 %)
0311|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0312|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
0313|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
0314|[2022-06-11 07:28:05]DEBUG : [Cuisine][_Volet 1] Positionnement à 99 %
0315|[2022-06-11 07:29:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
0316|[2022-06-11 07:30:08]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 1 minutes
0317|[2022-06-11 07:30:08]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 1 minutes
0318|[2022-06-11 07:30:08]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 4 minutes
0319|[2022-06-11 07:31:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 2 minutes
0320|[2022-06-11 07:32:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 3 minutes
0321|[2022-06-11 07:33:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0322|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 5 minutes
0323|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Délai de reprise atteint : réactivation de la gestion automatique
0324|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Démarrage de la gestion automatique 1
0325|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions non remplies : #8578# == 'Actif' && (#4480# > 5000 || #4481# > 5000)   Elévation = 8°-90 Azimuth = 67°-129° (15 %)
0326|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0327|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
0328|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
0329|[2022-06-11 07:34:05]DEBUG : [Cuisine][_Volet 1] Positionnement à 99 %
0330|[2022-06-11 07:35:06]DEBUG : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
0331|[2022-06-11 07:35:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 0 minutes
0332|[2022-06-11 07:35:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 5 minutes
0333|[2022-06-11 07:36:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 1 minutes
0334|[2022-06-11 07:37:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 2 minutes
0335|[2022-06-11 07:38:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 3 minutes
0336|[2022-06-11 07:39:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0337|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 5 minutes
0338|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Délai de reprise atteint : réactivation de la gestion automatique
0339|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Démarrage de la gestion automatique 1
0340|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions non remplies : #8578# == 'Actif' && (#4480# > 5000 || #4481# > 5000)   Elévation = 8°-90 Azimuth = 67°-129° (15 %)
0341|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0342|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
0343|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
0344|[2022-06-11 07:40:07]DEBUG : [Cuisine][_Volet 1] Positionnement à 99 %
0345|[2022-06-11 07:41:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
0346|[2022-06-11 07:42:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 1 minutes
0347|[2022-06-11 07:43:04]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 2 minutes
0348|[2022-06-11 07:44:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 3 minutes
0349|[2022-06-11 07:45:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0350|[2022-06-11 07:45:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 4 minutes
0351|[2022-06-11 07:45:06]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, réactivation dans 1 minutes
0352|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Gestion automatique suspendue, vérification du délai avant reprise (5 minutes) : 5 minutes
0353|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Délai de reprise atteint : réactivation de la gestion automatique
0354|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Démarrage de la gestion automatique 1
0355|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions non remplies : #8578# == 'Actif' && (#4480# > 5000 || #4481# > 5000)   Elévation = 8°-90 Azimuth = 67°-129° (15 %)
0356|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0357|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Position actuelle : 0 % → Position cible : 99 %
0358|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 100 %
0359|[2022-06-11 07:46:05]DEBUG : [Cuisine][_Volet 1] Positionnement à 99 %
0360|[2022-06-11 07:50:06]DEBUG : [Cuisine][_Volet 1] Démarrage de la gestion automatique
0361|[2022-06-11 07:50:07]DEBUG : [Cuisine][_Volet 1] Ecart avec la dernière position connue : 0 %
0362|[2022-06-11 07:50:07]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions non remplies : #8578# == 'Actif' && (#4480# > 5000 || #4481# > 5000)   Elévation = 8°-90 Azimuth = 67°-129° (15 %)
0363|[2022-06-11 07:50:07]DEBUG : [Cuisine][_Volet 1] Calcul de positionnement - Conditions remplies : #8578# == 'Inactif' || (#4480# < 5000 && #4481# < 5000) Elévation = 8°-90 Azimuth = 67°-129° (99 %)
0364|[2022-06-11 07:50:07]DEBUG : [Cuisine][_Volet 1] Position actuelle : 99 % → Position cible : 99 %
0365|[2022-06-11 07:50:07]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible : 0 %
0366|[2022-06-11 07:50:07]DEBUG : [Cuisine][_Volet 1] Ecart avec la position cible inférieur à 4 % : aucune action

Ce n’est donc pas le même problème.

Très bien.

Enfin… C’est peut-être la même chose au final.
Pour ma part quand l’une des conditions devient OK alors qu’elle ne l’était pas au départ sur la « tranche » du passage du soleil (via les Azimuths), il m’indique que la dernière position attendue est celle de l’ordre à exécuter.
Mais vu que l’ordre n’a jamais été donné étant donné que toutes les conditions n’étaient pas remplies… Il me stoppe la gestion automatique car pour lui, le volet a bougé (mais en fait non).

Je n’utilise pas la reprise car si je veux vraiment mettre le volet manuellement, je ne souhaite pas qu’il reprenne 5min plus tard.
Genre un des enfants qui ouvre un peu plus son volet pour jouer avec plus de lumière, si chaque 5 minutes, le positionnement se refait, ça ne va pas le faire.

J’ai répondu trop vite dans ma précédente réponse. Dans la tête je pensais au cron de 5 min et non à la reprise.
Il n’est normal qu’avec une reprise chaque 5 minutes, la gestion automatique reprenne la main.

C’est bien que tu as posté ton problème.
On voit bien que ce n’est pas un souci isolé.

Surtout que le bug est facile à reproduire (« tuto » expliqué dans un post précédent).

Mince, j’avais fait un autre post du coup… Je vais le supprimer, merci d’être revenu sur ta réponse.

Alors je crois que j’ai le même problème, je suis en train de migrer mes volets du plugin de Mika vers l’officiel, et pour le moment j’en ai mis qu’un dans l’officiel en test;
Ce matin le volet s’est ouvert au passage en mode Jour, et la gestion automatique s’est suspendue toute seule de façon erronée ; je précise qu’hier, et avec le même paramétrage, cela ne s’est pas produit, il y a donc un côté aléatoire dans ce bug

Logs de ce matin AVEC suspension automatique :

[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Passage en mode Jour
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Démarrage de la gestion automatique 1
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Calcul de positionnement - Action par défaut : Ne rien faire
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Le mode ne correspond pas : Jour != Nuit
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Aucune condition définie - Mode valide : Jour = Jour (99 %)
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Position actuelle : 0 % → Position cible : 99 %
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Ecart avec la position cible : 100 %
[2022-06-26 07:00:03][DEBUG] : [Volets roulants][Auto Volet Salon] Positionnement à 99 %
[2022-06-26 07:00:08][DEBUG] : [Volets roulants][Auto Volet Salon] Démarrage de la gestion automatique
[2022-06-26 07:00:08][DEBUG] : [Volets roulants][Auto Volet Salon] Ecart avec la dernière position connue : 100 %
[2022-06-26 07:00:08][DEBUG] : [Volets roulants][Auto Volet Salon] Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique
[2022-06-26 07:05:02][DEBUG] : [Volets roulants][Auto Volet Salon] Gestion automatique suspendue : aucune action

Du coup je me retrouve avec des volets désactivés pour toute la journée !
Je ne souhaite surtout pas mettre une fin de suspension avec délai, car quand on fait une action manuelle on veut garder la main jusqu’au soir
Par contre il n’y a aucune raison pour qu’il se suspende alors que ce n’était pas une action manuelle mais automatique qui a provoqué le changement d’état

Logs d’hier SANS suspension automatique :

[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Passage en mode Jour
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Démarrage de la gestion automatique 1
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Calcul de positionnement - Action par défaut : Ne rien faire
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Le mode ne correspond pas : Jour != Nuit
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Aucune condition définie - Mode valide : Jour = Jour (99 %)
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Position actuelle : 0 % → Position cible : 99 %
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Ecart avec la position cible : 100 %
[2022-06-25 05:53:01][DEBUG] : [Volets roulants][Auto Volet Salon] Positionnement à 99 %
[2022-06-25 05:55:02][DEBUG] : [Volets roulants][Auto Volet Salon] Démarrage de la gestion automatique
[2022-06-25 05:55:02][DEBUG] : [Volets roulants][Auto Volet Salon] Ecart avec la dernière position connue : 0 %
[2022-06-25 05:55:02][DEBUG] : [Volets roulants][Auto Volet Salon] Calcul de positionnement - Action par défaut : Ne rien faire
[2022-06-25 05:55:02][DEBUG] : [Volets roulants][Auto Volet Salon] Le mode ne correspond pas : Jour != Nuit
[2022-06-25 05:55:02][DEBUG] : [Volets roulants][Auto Volet Salon] Aucune condition définie - Mode valide : Jour = Jour (99 %)
[2022-06-25 05:55:02][DEBUG] : [Volets roulants][Auto Volet Salon] Position actuelle : 99 % → Position cible : 99 %

Entre les 2 je n’ai pas changé le paramétrage du volet, juste l’heure dans le scenario qui change de mode, mais c’est indépendant du volet.

Le souci semble être dans le calcul « Ecart avec la dernière position connue » qui donne hier 0%, et aujourd’hui 100% alors qu’il n’y pas de différence ; peut-être un bug a ce niveau dans le plugin qui calcule trop vite cet écart

Hello,

Il n’y a rien d’aléatoire pour ma part.
J’ai quelques posts plus haut indiqué comment reproduire ce bug.

As-tu entre ces deux jours un élément dans Condition pour vérification de gestion automatique (onglet Équipement) qui, pendant ta période de positionnement, a changé?

Par exemple, pour ma part, l’exécution de la gestion automatique est conditionné sur la température max du jour (en partie).
Admettons que je demande une exécution lorsque la température max du jour doit être supérieure à 21°C.
En début de journée, le plugin indique 20°C.
Ensuite, la position Azimut du soleil dans mon positionnement est atteint… Là, pas de mouvement car la condition est NOK. Mais… Si je suis toujours dans ma plage de position Azimut ET que mon plugin indique finalement que la température max du jour est 23°C par exemple (et donc que la condition de l’onglet équipement est OK) alors la gestion automatique s’arrête sans raison.

En gros, si pendant la plage Azimut où une position automatique est demandée, la condition de vérification de gestion automatique passe de NOK à OK, ça foire.

Le problème vient selon moi du fait que la dernière position connue = la position que le volet est censé avoir quelque soit si la condition de gestion auto est OK ou NOK.

Mais c’est visiblement trop compliqué à corriger…

Alors non je n’avais rien dans les « conditions pour vérification », et hier j’ai rajouté une condition sur [Organisation][Modes][Mode]# != « Absent », pour le cas ou je pars en vacances, mais elle n’a pas changé d’état.
Ce matin il a encore auto-suspendu la gestion automatique …
Je n’ai pas renseigné « Durée d’un déplacement » car je n’en comprend pas l’utilité, mais est-ce que servirait pas à éviter de se désactiver pendant qu’il bouge à cause du plugin ?
Je n’ai pas renseigné non plus « commande d’actualisation », car je ne vois pas la différence avec « commande d’état », à voir si cela aurait un effet

Par contre là c’est pas normal, surtout pour un plugin « officiel », si il y a bug cela doit être corrigé, quelque soit la complexité …

Malheureusement les bugs sont desfois trop complexe pour moi, comme tout etre humain j’ai mes limites, mais le code étant opensource je serais ravi d’inclure votre correction pour ce soucis dans le plugin.

Je ne suis pas dev du tout.
J’ai regardé par curiosité le code et un truc m’interpelle :

          $lastPositionOrder = $sunshutter->getCache('lastPositionOrder', null);
          $currentPosition = $sunshutter->getCurrentPosition();
          if ($currentPosition !== null && $lastPositionOrder !== null) {
            $amplitude = abs($sunshutter->getConfiguration('shutter::closePosition', 0) - $sunshutter->getConfiguration('shutter::openPosition', 100));
            $delta = abs($currentPosition - $lastPositionOrder);
            $ecart = round(($delta / $amplitude) * 100, 2);
            // log::add(__CLASS__, 'debug', $sunshutter->getHumanName() . ' ' . __('Ecart avec la dernière position connue',__FILE__) . ' : ' . $ecart . ' %');
            if ($ecart > 4 && ($sunshutter->getConfiguration('shutter::moveDuration', 0) == 0 || (strtotime('now') - $sunshutter->getCache('lastPositionOrderTime', 0)) > $sunshutter->getConfiguration('shutter::moveDuration'))){
              $sunshutter->checkAndUpdateCmd('stateHandling', false);
              $sunshutter->checkAndUpdateCmd('stateHandlingLabel', 'Auto');
              $sunshutter->setCache('beginSuspend', time());
              $sunshutter->setCache('manualSuspend', false);
              log::add(__CLASS__, 'debug', $sunshutter->getHumanName() . ' ' . __('Ecart avec la dernière position connue supérieur à 4 % : suspension de la gestion automatique',__FILE__));
            }
          }

Et notamment :

$delta = abs($currentPosition - $lastPositionOrder);

Si les noms de commandes concordent avec la réalité, on teste l’écart entre la position actuelle et le dernier ordre de position.
Si c’est bien cela, c’est logique que ça déconne et ça correspond bien au problème.
Il ne faut pas calculer l’écran entre la position actuelle et le dernier ordre de position mais entre la position actuelle et la dernière position connue.

Car le dernier ordre n’est pas forcément exécuté. Il ne l’est pas si la Condition pour vérification dans l’onglet Equipement n’est pas ok.

Il faut que :

  • Soit le calcul de l’écart soit fait entre la position actuelle et la dernière position connue
  • Soit que la dernière position connue ne soit pas mise à jour si la condition pour vérification n’est pas remplie

Après, ce ne sont que les suppositions… Il manque des commentaires dans le code pour que je puisse étudier la logique du code.

Bonjour,
Non c’est bon ca, le lastOrder est mis a jour que si l’ordre est vraiment envoyé au volet et ca doit absolument rester comme ca sinon le plugin ne sait pas qu’il a perdu la main et donc fera n’importe quoi.