Ajout de la durée de non détection dans les scenes

Bonjour,

J’ai un problème pour une scène d’extinction différée lié à un détecteur de mouvement. Dans ma scène, je la mets en attente X minutes avant d’éteindre les lumières. Si pendant ce laps de temps i: y a eu une détection j’aurais voulu réinitialiser la scène d’arrêt et donc éviter une extinction trop proche de la détection et une autre extinction qui servirait à rien.

Je vois deux fonctionnalités possibles pour résoudre mon problème.

  • Soit permettre dans une scène A d’arrêter la scène en attente d’une scène B

  • Soit permettre de récupérer la durée depuis la dernière détection ( comme sur le dashboard)
    là deux possibilités selon moi de traduire celà:
    - soit c’est une fonctionnalité comme « attendre » au niveau des actions ou le mieux au niveau du déclencheur.
    tant que ( [durée détection] < X minutes/heures…) { attendre }
    - soit pour récupérer la valeur et donc après pouvoir faire du conditionnelle dans la scène. ( la scène off qui est en attente avant la nouvelle détection ne se finira pas )

Hello @mikael ! Je viens de voir ton message, il était passé dans les mailles du filet avec toutes les notifications post-vacances :slight_smile:

100% d’accord avec cette demande, c’est une demande récurrente qu’on a et qui fait sens!

J’ai cherché, je pensait qu’on avait déjà une demande de fonctionnalité pour ça mais visiblement non !

@pierre-gilles : c’est pas grave pour le délai, l’important est que la demande sera traitée dans une prochaine release. ( çà évitera que mon fils m’appelle et m’engueule car la lumière s’éteint trop vite )

Salut,
Je rencontre le même problème :
J’ai un détecteur de mouvement et j’aimerai que la détection se mette en pause pendant un certain temps.
Une solution serait de pouvoir créer une variable “etat_precedent” que l’on mettrait à 1 lorsqu’il y a une première détection, soit par changement de l’état du capteur, soit par récupération du dernier état du capteur.
Cela fonctionnerait comme cela :

Déclencheurs : Changement de l’état de l’appareil (=détection) ET “etat_precedent” = 0
Actions : Envoyer message (pour tester) ET “etat_precedent” = 1 (on met la variable à 1)
Action : Attendre la durée souhaitée
Action : “etat_precedent” = 0 (on met la variable à 0)

En fait, deux actions “Créer la variable…” et “Mettre la variable à …” seraient bien :blush:

Dans un bloc Action :
Récupérer le dernier état de l’appareil Détecteur ET Créer la variable “etat_precedent” ET Mettre “etat_precedent” à la valeur souhaitée (cependant, je crois que l’on ne peut pas utiliser la valeur de l’état dans le même bloc action que “Récupérer le dernier état”, ce qui paraît logique car c’est séquentiel)

Donc plutôt :
Action :
Récupérer le dernier état de l’appareil Détecteur ET Créer la variable “etat_precedent”
Action :
Mettre la variable “etat_precedent” (on sélectionne dans la liste) à “1” (on saisit la valeur)

J’ai triché en faisant un déclenchement programmé toutes les 15 secondes, mais ça ne me plaît pas !

1 « J'aime »

Hello,

Je rejoins le besoin. Cela permettrait, dans mon cas, d’éviter de recevoir des spams de messages.

La description de mon problème aujourd’hui : [SCENES] Comment limiter les messages envoyés - #5 by PhilippeMA

1 « J'aime »

Bonjour à tous ici !

Je pense que cette demande est importante (déclencheur avec une durée de non-détection), elle est souvent demandée, néanmoins je ne suis pas 100% sûr sur comment elle pourrait être mise en place

@VonOx nous avait mis dans un autre sujet comment c’était fait chez Home Assistant :

Sauf que si je comprend bien, ça présuppose que le capteur de mouvement ait un retour à zéro (c’est à dire qu’il n’envoie pas que des « 1 » mais aussi des « 0 » (pas de mouvement) ), c’est bien ça @VonOx ?

Ah, je me disais bien, je viens de me rendre compte qu’on avait déjà beaucoup débattu sur ce sujet:

Je ne comprend toujours pas comment faire cette fonctionnalité (fonctionnellement bien-sûr, on ne parle pas de code ici), donc je suis preneur de tout feedback additionnel :slight_smile:

vu que j’ai demandé je vais essayer de te décrire la fonctionnalité

Le détecteur passe à l’état détection. Lorsque qu’il repasse en veille, c’est à ce moment là que le timer devrait commencer. A chaque fois que le détecteur passe à l’état “détecté” alors le timer devra être remis à zéro.

Pour info dans le dashboard c’est déjà le cas, on a l’info lorsque l’on affiche le device avec la fonction “détection mouvement”.

Bonjour,

Si dans Gladys on considère que :

  • Dans la feature du device, on ajoute une option “Tempo gérée par le capteur : Oui/Non”. Si Non alors on configure un temps de remise à zéro de base à 2 minute par exemple (un capteur de mouvement physique et non domotique est toujours pré-paramétré et on tourne la vis si on souhaite un temps différent, dans la logique il faut agir pareil),
  • on indique à l’utilisateur qu’il peut modifier ce temps dans la feature (ça peut même être un popup à en cas de création automatique du capteur),

Si le capteur n’a pas de tempo intégrée :

  • le capteur de mouvement envoi 1 ou true → détection de mouvement → valeur en DB = 1,
  • le capteur n’envoi rien pendant 2 minutes → valeur en DB = 0 après ces 2 min,
  • le capteur à envoyé 1 à nouveau après 1 min → La tempo de 2 minute repart à 0 → valeur en DB = 0 après ces 2 min,

Si le capteur a une tempo intégrée et envoi 0 :

  • le capteur de mouvement envoi 1 ou true → détection de mouvement → valeur en DB = 1,
  • le capteur de mouvement envoi 0 ou false → détection de mouvement → valeur en DB = 0.
1 « J'aime »

Merci pour le feedback @Terdious !

@VonOx on est d’accord la fonctionnalité côté Home Assistant nécessite forcément qu’il y ait un retour à 0 du capteur de mouvement ?

1 « J'aime »

Oui, d’ailleurs je me base là dessus pour éteindre des ampoules qui ont été allumées via détection.

1 « J'aime »

Merci pour le retour ! Ok donc la fonctionnalité ne marche que si on code le retour à zéro pour les détecteurs de mouvement qui ne le gèrent pas.

1 « J'aime »

Salut à tous :slight_smile:

J’ai travaillé sur ce développement aujourd’hui !

Voilà à quoi cela ressemble dans Gladys :

Ce qui va se passer sous le capot:

  • Dès qu’une valeur « OFF » est reçue, Gladys lance un timer de 5 minutes
  • Pendant les 5 minutes, si une valeur « ON » est reçue, cela supprime le timer
  • Pendant les 5 minutes, si une valeur « OFF » est reçue, cela ne fait rien (et le timer actuellement lancé continue de courir)
  • Au bout des 5 minutes, si rien n’a annulé le timer, la scène s’exécute

Ce déclencheur fonctionne avec tout type de capteurs, cela peut-être sur un capteur de température avec une condition « température > 12°C ».

Une seule limite actuelle, mais qui me parait assez limité pour l’instant: Si Gladys redémarre pendant un timer, le timer est perdu.
Après, c’est le même comportement actuellement si une scène est en cours d’exécution et que Gladys redémarre, c’est perdu.

La PR:

Je serais preneur de retours sur la PR, notamment sur le code. J’aimerais être sûr qu’il n’y ait pas de cas que je n’ai pas traité !

Merci d’avance pour vos retours :pray:

3 « J'aime »

cela pourrais servir pour les presence pour eviter les micro deconnection ca

En soit pas vraiment, la présence tu as déjà tous les mécanismes dans Gladys pour le faire sans ça :slight_smile:

( cf documentation : Gérer la présence en scannant votre réseau | Gladys Assistant )

Cette fonctionnalité est disponible dans Gladys Assistant 4.49 :

Je ferme ce sujet pour libérer les votes :pray: