@pierre-gilles , je pense avoir repéré un défaut dans le déclencheur avec délai : J’ai activé cette option ‹ délai › sur un déclencheur, et il me semble que l’autre option ‹ seulement si le seuil est dépassé › n’est plus prise en compte correctement.
Concrètement, je surveille la température de mon frigo pour qu’il ne soit pas trop froid. Je veux que Gladys me prévienne si ça passe sous les 0°, uniquement si cela dure depuis plus de 5 minutes, sans répéter l’information à chaque nouvelle mesure toujours inférieure à 0°.
Je viens de faire des tests, et le fonctionnement m’a l’air correct. Je n’arrive pas à reproduire un mauvais fonctionnement.
Dans ton cas, comme les températures oscillent autour de 0°C, il est possible qu’une valeur repasse à 0°C, puis repasse à -0.1°C, ce qui remet à zéro le fonctionnement vu que le seuil est repassé
Tes messages ne peuvent pas attester du bug, car tes messages sont déclenchés avec un « récupérer le dernier état » qui lui se déclenche après les 5 minutes d’attente, donc ce n’est pas la même valeur que celle dans le déclencheur.
Si tu veux qu’on pousse l’enquête plus loin, il faudrait extraire de ta base de donnée les vrais valeurs reçues par Gladys et rejouer le même scénario, mais bon à toi de me dire si c’est un comportement que tu continue de voir ou pas
@pierre-gilles,
Je suis retombé sur ce souci que tu n’avais pas réussi à reproduire. Donc d’après moi il est bien toujours présent. Ma nouvelle situation est peut-être plus facile à reproduire :
DansGladys, j’ai défini un appareil MQTT de type « commutateur ».
Un flux node-red surveille mon réseau toutes les 5 minutes, et envoie « 0 » ou « 1 » à l’appareil MQTT, en fonction de la connexion internet : absente ou présente
Dans Gladys, une scène est censé se déclencher quand l’appareil MQTT passe à 0 et le reste pendant au moins 12 minutes. Voilà sa config:
Je viens de faire un test avec exactement le comportement que tu m’as décris (mais en réduisant le temps d’attente à 1 minute pour que ce soit plus simple à voir)
Merci d’avoir pris le temps de tester, @pierre-gilles. Mais je ne suis pas sûr qu’on fasse exactement le même test .
J’ai vérifié, et mon appareil ne repasse pas à 1 entre deux déclenchements. Comme c’est un capteur binaire, j’en ai la certitude avec le widget graphique qui permet de voir les débuts et fins de l’état ‹ 0 ›.
Je vais essayer de préciser ce qui se passe chez moi:
avant 13h : l’appareil MQTT est à 1
13h : l’appareil MQTT passe à 0. La scène ne se déclenche pas (mais en tâche de fond elle doit commencer à vérifier le délai de déclenchement de 12 minutes). Comportement OK.
13h05 : l’appareil MQTT reçoit à nouveau ‹ 0 ›. Rien ne se passe. Comportement OK
13h10 : l’appareil MQTT reçoit à nouveau ‹ 0 ›. Rien ne se passe. Comportement OK
13h12 : l’appareil MQTT n’a rien reçu, mais la scène se déclenche (12 minutes après 13h). Comportement OK
13h15 : l’appareil MQTT reçoit à nouveau ‹ 0 ›. Rien ne se passe (mais c’est là que je soupçonne le déclencheur de débuter à nouveau la vérification du délai de 12 minutes). Mais pour l’instant, comportement OK
13h20 : l’appareil MQTT reçoit à nouveau ‹ 0 ›. Rien ne se passe. Comportement OK
13h25 : l’appareil MQTT reçoit à nouveau ‹ 0 ›. Rien ne se passe. Comportement OK
13h27 : l’appareil MQTT n’a rien reçu, mais la scène se déclenche (12 minutes après 13h15). Et c’est ce comportement qui n’est pas conforme puisque l’appareil MQTT n’est pas repassé à 1 depuis 13h12 !
Si tu veux investiguer plus loin, dans les logs tu dois avoir 2 logs :
2025-05-29T14:40:39+0200 <info> scene.triggers.js:61 (Object.device.new-state) Scheduling timer to check for device_feature "mqtt:connexion-internet-perdue" state in 60000ms
(Lancement du minuteur)
Et:
2025-05-29T14:41:39+0200 <info> scene.triggers.js:43 (Object.device.new-state) Scene trigger device.new-state: Timer for sensor mqtt:connexion-internet-perdue has finished.
(Fin du minuteur)
Dans mes tests, le minuteur ne se lance qu’une seule fois