Accès à toutes les valeurs d'un capteur dans le temps

Pour moi c’est un peu différent de cette manière. Je pourrais savoir s’il y a eu un pic (haut ou bas) mais pas si le frigo est trop froid en général.
Seule la moyenne me permettra de savoir s’il est trop froid sur 2 h par exemple.

Condition Temporelle

  • Case N°1 → OK
  • Case N°2 → Si une condition n’est pas remplie, elle est vrai par défaut.
    Dans l’exemple des condition horaires, “Après 9h00” et “Avant <vide>” sera vrai. A 8h, on ne sera pas après 9h, mais avant <vide>. La condition sera validée ou pas ?

Condition sur le soleil

C’est clair et limpide, je ne vois pas d’autres cas pour le moment.

Amélioration d’un capteur existant

C’est ce qui répond à une de mes problématiques :slight_smile:

1. Il faut désormais que les capteurs de mouvement envoient un état “pas de mouvement détecté” juste après un “mouvement détecté”.

→ D’après l’interface web du projet Zigbee2Mqtt, mes capteurs Xiaomi Aqara Zigbee renvoient bien cet état.
Mais pour ceux qui sont identifiés comme n’envoyant pas cet état, Gladys (ou le service) peut le faire pour lui au après 20 secondes comme ça semble être le cas avec mon capteur ?

4. A définir: Que se passe-t-il si la condition est valide pendant 4 heures ? […] une execution potentiellement à l’infinie de la scène?

→ J’avais justement ce besoin : limiter le nombre d’exécution d’une scène dans la journée.
Exemple concret, qui serait résolu en même temps que cette problématique : mon capteur de mouvement (dans la boite aux lettre) génère 2x événements et ma scène est exécutée deux fois.
Home Assistant propose un “bouncer” je crois, pour ne prendre en compte qu’un seul des deux événements.
Je pensais aussi proposer dans les scène, au niveau de la condition de déclenchement, une nouvelle possibilité de limiter le nombre d’exécution. 1x / heure, 1x / minute, 10x / jours, etc.

Non, « Après 9h » la condition est vrai si il est après 9h c’est tout :slight_smile:

Je voyais plus ça direct après le mouvement, en mode retour à 0 après un mouvement.

Cette question @VonOx je serais intéressé de savoir comment ça marche côté home assistant ?

Tu peux déjà le faire avec la condition « Exécuter seulement lorsque le seuil est passé ( et non pas à chaque valeur envoyée ) » sur la box « changement d’état de l’appareil ».

Cette condition fait que seule les changements de valeurs sont pris en compte, si il y a 2 fois la même valeur la scène ne sera exécutée qu’une seule fois :slight_smile:

Je suis d’accord que ça peut être pratique! Après dans ce cas là, je pense pas que ce soit la solution, je pense que la box « changement d’état de l’appareil » gère le cas toute seule

Côté HA c’est un des premiers paramètres de la scène, son mode

Mmm pas sûr que ça réponde à ma question, là c’est juste pour savoir si une scène peut être démarrée 2 fois en même temps. Je parle d’un autre cas.

Imaginons que tu ai un déclencheur « Si un capteur de mouvement ne détecte pas de mouvements pendant 30 minutes », et qu’on ait la réception d’évènements suivante:

  • 12:01: réception d’un mouvement
  • 12:03: pas de mouvement
  • 12:05: pas de mouvement
  • 12:07: pas de mouvement
  • […]
  • 12:19: pas de mouvement
  • 12:32: pas de mouvement
  • 12:33: pas de mouvement
  • 12:35: pas de mouvement
    […]
  • 13:01: pas de mouvement
  • 13:03: pas de mouvement

Quand va s’exécuter la scène ?

En soit, la théorie voudrait que la condition soit validée à 12:31 (exactement 30 minutes après le premier mouvement), sauf qu’à 12:33, la condition est encore valide (il n’y a effectivement pas eu de mouvement depuis), et de même à 12:34, et de même à 12:35…, et de même à 13:03

Donc la scène s’exécuterait un nombre infini de fois tant qu’il n’y a pas de mouvements?

Parce qu’en soit, moi je vois cette histoire de « 30 minutes sans mouvements » comme une fenêtre glissante… Je sais pas si c’est très clair :smiley:

Hello @pierre-gilles,

Mon avis sur la question, ayant de nombreux besoin sur ce point :
Habituellement tu cherches à développer dans le contexte “équipement”. Un device pour toi (et pour tout le monde ici je pense) à toujours été un équipement “physique” avec ce qui le compose.
Un détecteur de mouvement en tant qu’équipement physique est un appareil composé d’un détecteur de mouvement, d’une tempo et souvent, mais pas obligatoirement, d’un détecteur de luminosité (mais la question de ce dernier n’est pas là).

En domotique donc, le but est justement de pouvoir régler la tempo dans l’interface. AMHA, cette option devrait donc être réglée dans la fiche du device. Ensuite cette tempo devrait, comme pour les équipements physique, remettre à zéro (donc pas de mouvement détecté) la value du device si aucun autre mouvement détecté dans ce laps de temps.

Ensuite dans les scènes tout est possible :
Device : détecteur cuisine - tempo : 30 min
Exemple n°1 = 2 scènes
Détecteur cuisine passe à 1
Scene 1 / Trigger1 : 12:01 : Détection cuisine (Front montant = à la montée à 1)
Action : Allumer Lumière
Fin
30 minutes après, si pas de mouvement détecté entre temps, Détecteur cuisine passe à 0
Scene 2 / Trigger1 : 12:31 : Pas de détection cuisine (front descendant = à la descente à 0)
Action : Eteindre Lumière
Fin

Exemple n°2 = 2 scènes idem Exemple n°1
Détecteur cuisine passe à 1
Scene 1 / Trigger1 : 12:01 : Détection cuisine (Front montant = à la montée à 1)
Action : Allumer Lumière
Fin
Derniere détection de mouvement à 12h25, Détecteur cuisine passe à 0 à 12h55
Scene 2 / Trigger1 : 12:55 : Pas de détection cuisine (front descendant = à la descente à 0)
Action : Eteindre Lumière
Fin

Device : détecteur barrière - tempo : 5 min
Exemple n°3 = 1 scène - on souhaite que l’action fasse l’effet inverse à une durée fixe
Détecteur barriere passe à 1
Scene 1/ Trigger1 : 12:01 : Détection barriere (Front montant = à la montée à 1)
Action : ouvrir la barriere
Action : Attendre 10 min
Action : Fermer la barrière (même si une autre détection est apparue et peu importe si le détecteur est repassé à 0)
Fin
Remarque : Dans cet exemple, si la barrière a été refermée entre temps et qu’un autre mouvement est détecté avant les 10 min, la barrière s’ouvre de nouveau. Cette scène doit obligatoirement arrêter la scène précédemment lancée.

Device : détecteur chambre Bébé - tempo : 30min
Exemple n°4 - reprenant ton exemple précédent :
Détecteur chambre passe à 1 au couché
Scene 1 / Trigger1 : Toutes les 30 minutes
Condition1 : entre 10h et 12h et entre 14h et 16h
Condition2 : si pas de mouvement détecté dans la chambre de bébé
Action : Envoyer un message : “Attention, aucun mouvement détecté depuis 30 minutes”
Fin

Avec cette méthode, tout deviens possible avec le détecteur de mouvement. Je reste persuadé qu’une tempo devrait être adressage directement au device. Aucun ajout ne serait nécessaire dans les scènes pour la détection de mouvement mise à part une option en plus de la case a cocher “exécuter 1 seul fois” qui pourrait être “A chaque nouvelle exécution arrêter la scène en instance”.

En espérant que ça pourra aider.

Pour information, j’ai commencé à travailler sur la box “condition temporelle” ( vu qu’il n’y a pas de débat sur celle là)

Par exemple:

La suite de la scène s’exécutera uniquement le week-end entre 11:45 et 12:50.

1 Like

Je suis d’accord avec @Terdious , c’est ce que je voudrais mettre en place dans mes pièces.

@Terdious à répondu avant mais effectivement sur ces capteurs c’est un temps glissant. La condition est aussi vrai une fois le temps passé mais ça on s’en fou faut declencher une seule fois.

Pour le coup ce type de scène est vraiment simple à faire dans HA

La PR pour la condition temporelle est dispo sur GitHub:

Ok, merci pour le feedback :slight_smile: Du coup pour vous ma proposition semble bonne ? Il va falloir réfléchir à l’implémentation ensuite, pas simple sur ce trigger :stuck_out_tongue:

Salut @pierre-gilles,

Cet après midi je voulais créer un scénario :
“Si personne n’est à la maison, qu’il fait sombre et que quelqu’un rentre, alors j’allume la lumière de l’entrée”.

MAIS :

  • Je ne peux pas détecter la présence de chaque personne du foyer (aucun moyen de le faire)
  • Cela implique de savoir quand il n’y a plus personne à la maison et que la porte d’entrée s’ouvre

En réfléchissant, je pensais créer un utilisateur Gladys “Occupants” pour lequel je pourrais gérer la présence en fonction de mes capteurs à la maison, à savoir des capteurs de présence et d’ouverture des portes.
Sauf que pour que ça soit efficace et réactif, je voyais les choses comme ça :

  1. En cas de mouvement à la maison ou d’ouverture de la porte d’entrée (si présence précédente) => Présence
  2. (Vérifier toutes les minutes) Si dans les 15 dernières minutes il n’y a aucun mouvement de porte ou de présence => Absence

Pour cela on voit bien qu’il est nécessaire de consulter l’historique des valeurs sur une période définie, comme le bloc “Vérifier la présence” le fait.

:arrow_forward: Aux vues des nouveautés depuis la demande de cette fonctionnalité, qu’est-ce qu’il faudrait retravailler avant de te permettre de te lancer dans le dev de cette fonctionnalité (toi ou quelqu’un d’autre d’ailleurs) ?
Ou quelle est ta vision des choses si elle a évolué à ce sujet ?

Autre remarque (rien à voir) :

→ Il faudrait rajouter une description du fonctionnement de la brique “Contrôler un appareil” , je ne suis pas certain de comprendre ce que ça fait.

C’est déjà possible, tu as du louper le trigger « La maison n’est plus vide »:

La documentation:

En couplant ça avec un bloc « continuer seulement si » tu peux faire la scène que tu décris :slight_smile:

Là où je bute c’est la partie

  • si mouvement dans les 30 dernières minutes, alors quelqu’un est à la maison

Je ne vois pas comment réaliser cette détection.

Ah ok pardon, je comprend mieux, tu ne veux pas faire de la gestion de présence individuelle, tu veux juste faire une détection en mode comme un capteur de mouvement dans un hall d’immeuble (qui s’active quand tu rentre, et dès qu’il n’y a plus de mouvements au bout de X temps, coupe la lumière)

Effectivement en l’état ce n’est pas possible (c’est peut-être possible en bidouillant, mais en tout cas de manière simple/clean c’est pas possible)

Il y a plusieurs demandes de fonctionnalités qui demandent ce développement, celle ci (après bon le titre n’est plus explicite), et celle là :

Je pense qu’il manque juste du temps pour faire le développement (spec/dev) :slight_smile: Les PRs sont les bienvenues.

Ok je vois, finalement pour toi ce n’est pas tant une question d’accéder aux valeurs d’un device dans le temps mais plutôt d’adapter les scènes pour permettre de répondre à ma problématique bien particulière.

Actuellement c’est effectivement ce qui répond à ma problématique, mais de manière générale ça reste une fonctionnalité qui est utile et puisse a mon sens.
Sauf si en effet une autre méthode permet d’effectuer globalement la même chose, auquel cas on peut fermer cette feature request et en ouvrir une autre mieux détaillée ?

La demande de fonctionnalités que j’ai linké ci-dessus?

Oui c’est ce que je voulais dire. La demande de fonctionnalité que tu as linké correspond à mon besoin bien précis.

Mais il y aura surement certains cas où on aura besoin d’accéder aux anciennes valeurs d’un capteur pour en faire une moyenne par exemple, ou vérifier depuis combien de temps telle valeur n’a pas été détectée.

Donc cette feature me paraît toujours d’actualité, telle que le décrirlt mon tout premier message.

Je pense qu’il faut être bien plus précis dans les demandes de fonctionnalités dans ce cas-là, je serais d’avis de fermer cette demande et si tu as des demandes précises de ré-ouvrir d’autres demandes :slight_smile:

Là personne ne va voter pour cette demande vu quelle est assez flou, il faut que le titre soit compréhensible par la communauté.

D’accord, j’ouvrirai une nouvelle demande plus précise.

[EDIT]
La demande existait déjà pour la partie calcul autour des valeurs :