Scènes : condition de déclenchement ET

Je me permets de copier (presque) mot pour mot la demande de fonctionnalité de @lmilcent : Scènes : condition de déclenchement multiple (ET/OU)

Même si c’est théoriquement possible de le faire avec “continuer seulement si” et des “capteurs fictifs”, l’intégration de la fonction “ET” en tant qu’opérateur logique (1+1=1) dans le déclencheur pourrait être vraiment intéressante.

Ce serait pour faire quoi ?

Donne moi un exemple précis :slight_smile:

Par exemple l’été:
-il fait jour
et
-il fait plus de 23°

Alors action : Gladys ferme les volets pour assombrir la pièce

En fait, dès qu’une action doit se déclencher avec deux conditions simultanées.

Ok, donc en gros pour faire cette scène on est d’accord le “il fait plus de 23°C” on l’a déjà, là il manque le “Il fait jour” dans une condition dans les scènes ?

Tu peux créer une demande de fonctionnalité si tu veux voir ça dans Gladys :slight_smile:

Parce qu’on a déjà un mécanisme de condition en fait, peut-être que cette partie n’est pas claire ?

Pour moi oui, aujourd’hui dans le déclencheur on a [« condition1 » ou « condition2 »] mais pas [« condition1 » et « condition2 »]

Ça ne paraît pas logique de mon point de vu d’avoir le mécanisme de condition dans « l’action » de la scène. D’où cette demande de fonctionnalité qui permettrait de fluidifier le raisonnement.

@lmilcent, toi qui est l’instigateur de la première demande de fonctionnalité, qu’en penses-tu?

Peut-être que c’est juste un problème de nommage ? On pourrait remplacer le nom « action », si c’était appelé autrement, « Actions/Conditions », « Corps » d’une scène ?

En fait j’ai l’impression qu’il y a souvent cet amalgame entre condition et déclencheur.

Par définition, un déclencheur est un « évènement » ponctuel dans le temps, qui se déclenche à un moment unique. Il n’est pas possible d’avoir plusieurs déclencheurs qui se déclenchent en même temps.

En revanche, je suis d’accord qu’il est possible d’avoir un déclencheur PUIS une condition, et c’est ce qu’on fait actuellement:

Tu peux dire dans une scène actuellement:

SI une valeur de capteur est reçue > 23°C (évènement)

ET qu’il est entre 10h et 18h (condition)

La condition est bien une vérification à posteriori, lorsque le déclencheur s’est déclenché, car un déclencheur n’est pas un état vérifié continuellement, c’est une évènement.

La condition, en revanche, va aller chercher un état (ici, l’heure), puis vérifier cet état en fonction de la condition entré par l’utilisateur.

Est-ce que c’est plus clair ? :slight_smile:

Dans “déclencheur”, je comprends “quelles conditions doivent être réunies pour déclencher ma scène”.
Dans ton exemple, c’est bien “condition1 : >23°” et “condition2 : entre 10h et 18h”

Ça me paraît beaucoup plus simple de les mettre dans le même bloc “déclencheur” plutôt que dans “Actions/Conditions”, surtout que le OU est déjà présent dans les conditions de déclenchement.

Justement, c’est pas du tout ça :smiley: Peut-être que la partie déclencheur n’est pas bien expliquée dans ce cas là alors.

Un déclencheur c’est un évènement, pas une condition.

Est-ce que tu as déjà utilisé des services comme IFTTT ou Zapier ?

Je me suis énormément inspiré de ces services (Zapier surtout) quand j’ai imaginé cette partie de Gladys.

Côté Zapier:

Côté IFTTT:

Est-ce que tu comprend mieux le fonctionnement avec l’UI de Zapier? Ils précisent clairement qu’un déclencheur est un évènement.

La différence entre un évènement et une condition, c’est qu’un évènement ça vient de l’extérieur et qu’on s’y attache juste dans la scène:

Nouvelle valeur de capteur reçue en MQTT => je lance la scène
Soleil se couche => je lance la scène
Evènement du calendrier qui commence => je lance la scène

J’ai peut-être l’impression sinon que ce qui est troublant c’est qu’il est possible d’avoir plusieurs déclencheurs ?

En fait, quand tu créé 3 déclencheurs, c’est pas un “OU”, c’est juste 3 scénarios totalement indépendant.

Ca serait bien de faire des topics de démo dans la rubrique “scènes” que nous venons de créer pour que ça soit plus parlant.
Les pros des scènes, @Terdious, @lmilcent, @GBoulvin

1 « J'aime »

Je comprends que pour plus de simplicité ce serait plus simple de pouvoir faire en une seule case : “déclencheur = 23°C ET temps > 12h”.

  • C’est déjà faisable actuellement, mais en passant par une 2e action “condition” comme très bien expliqué par @pierre-gilles et ça répond à une certaine logique et facilité. La preuve, les “grands” font comme ça, c’est sûrement suite à plusieurs réflexions qu’ils en sont arrivé là.

  • Mais ça parait plus naturel de le faire comme décrit par @Fabic d’un point de vue humain. C’est vrai qu’en tant que nouvel utilisateur Gladys, j’avais ça en tête avant de comprendre comment faire avec les 2 étapes. C’est à dire pouvoir dire à Gladys dans un seul et même bloc : déclenche la scène si mon capteur détecte 23°C et que je suis absent.

Il y a peut être un sujet un peu différent ici, sur l’évolution potentielle (ou pas) de la manière d’écrire les scènes.

Soit en changeant la terminaison par “Événement déclencheur” en explicitant que les conditions sont dans un 2nd bloc action, soit en permettant à l’interface graphique de simplifier tout ça.
Exemple :

  • la partie déclencheur permet d’utiliser le contenu de “continuer seulement si”.
  • Quand un capteur est appelé dans ce bloc, il est directement ajouté à la liste (cachée ou implicite) des événements déclencheurs, de même pour le bloc “condition”, lui aussi implicite.
  • L’UI web affiche un seul bloc à l’utilisateur qui contient les conditions et les sources d’événement à utiliser, et fait le boulot de formater tout ça pour que le backend reçoive les infos comme actuellement.
1 « J'aime »

Je pense que c’est effectivement un problème de présentation générale.

Il faudrait améliorer les titres/descriptions pour que ce soit plus clair.

Déclencheur => Expliquer que c’est un évènement
Action => Préciser action ou condition

En revanche là-dessus je suis pas d’accord, car ce n’est plus la même chose.

Une scène dans Gladys n’est pas définie par ses déclencheurs, un déclencheur est facultatif dans une scène.

Une scène, c’est un enchainement de tâches, certains sont des actions, et d’autres sont des conditions qui peuvent stopper l’exécution de la scène. Si tu clique sur « démarrer » manuellement une scène, les conditions sont exécutées elle aussi, et c’est ce qu’on veut.

Si on commence à mélanger les déclencheurs et les actions, au contraire on risque de créer un faux « modèle mental » de ce qu’est une scène Gladys chez les utilisateurs, et au contraire ça va encore plus mélanger les utilisateurs.

Je pense qu’il y a un travail de terminologie à faire: mieux expliquer comment faire, adapter un peu l’UI pour que ce soit plus clair.

Par contre, je ne pense pas que ce soit une bonne idée de détourner le frontend pour faire croire à l’utilisateur que Gladys fonctionne d’une façon dont elle ne fonctionne pas :slight_smile:

Ce serait possible sinon d’afficher un bout de documentation lors de la création des premières scènes ?
Par exemple, pour la création des 5 premières scènes (sauf si l’utilisateur clique sur “ne plus montrer”), un encart en haut de l’écran récapitule tout ça :

  • Ce qu’est une scène (suite d’actions exécutées par Gladys)
  • Comment ça se déclenche (manuellement / par événement)
  • Ce qu’est un événement
  • Comment gérer les conditions
  • Exemple ou lien vers une page expliquant comment combiner deux déclencheurs
1 « J'aime »

Je pense que @pierre-gilles a raison là dessus. Je vous avoue qu’en fait, c’est en lisant ce topic aujourd’hui que j’ai compris comment différencier un déclencheur d’une action conditionnelle…!!
Je suis pas Einstein, mais sûrement pas plus bête qu’un autre, et ça mériterai un peu plus de clarté.

Soit grâce à des infos contextuelles, ou des commentaires sous les blocs, des modal / popover / autre qui s’ouvrent pour guider la création de la scène.

Ce que je comprend pour ma part de la demande de @Fabic, c’est qu’aujourd’hui ca fonctionnerait dans un sens mais pas dans l’autre.

Si le déclencheur est « il fait jour » et la condition est « il fait plus de 23° » alors lorsqu’il fera jour :

  • soit il fait < à 23°, la scène ne se declenche pas.
  • soit il fait > à 23°, la scène se declenche.

Mais si 1h après la température passe >23° la scène ne se redeclenchera pas.

Inversement si le déclencheur est « il fait plus de 23° » et la condition est « il fait jour » alors lorsqu’il fera 23° :

  • soit il fait nuit, la scène ne se declenche pas.
  • soit il fait jour, la scène se declenche.

Mais si 1h après qu il fasse nuit, il fait jour et que la température est restée au dessus de 23°, la scène ne s’exécute pas non plus.

La solution pour réussir à faire la scène consisterait donc (je suppose) à mettre les 2 déclencheurs en « OU » et de mettre les 2 conditions ensuite pour continuer. Disons que ça devrait être fonctionnelle, me trompais-je ? Et c’est cette visu qui te dérange @Fabic ?

Oui c’est ça. Après il faut qu’on arrête de parler de « OU » dans les déclencheurs, je pense que c’est ce qui a embrouillé @Fabic. Les déclencheurs sont juste des évènements indépendants, il n’y a pas de comparaison entre eux

C’est possible, après je pense que c’est complémentaire mais pas suffisant. Une partie des utilisateurs (moi le premier), ferme ce genre de tooltip sans forcément les lire.

L’UI doit être bien claire et se suffire à elle même :slight_smile:

C’est ça, les events sont aussi condition.

ça reste un OU vu qu’ils sont indépendants

Oui mais ça embrouille les gens, parce qu’après on nous demande un « ET », alors qu’il n’y a aucun rapport entre 2 déclencheurs, ce sont des évènements.

Je trouve en effet que cette façon de penser est compliqué.
En fait, finalement, pour garder l’esprit du déclencheur on pourrait aussi créer des variables combinées.
Exemple:
Si (variable 1) température >23°C = vrai ET (variable 2) Jour = vrai alors (nouvelle variable 3) TempJoursup23 = vrai sinon TempJour23 = faux

Puis dans la scène, le déclencheur est joué par la variable TempJour23 et le tour est joué.