Plusieurs conditions d'action sur valeur pour déclencher différents scénarios?

Hello,
Sur mes commandes d’ouvrant (contact= 0 ou 1) j’aimerais pouvoir déclencher deux scénarios selon différents déclencheurs :

  • scénario 1 qui se déclenche quand contact =1 depuis 20 minutes
  • scénario 2 qui se déclenche avec des tags quand contact = 0.

Hors il n’est pas possible de configurer plusieurs conditions dans la section « Action sur valeur » d’une commande, seulement plusieurs actions pour une même condition (c’est dommage d’ailleurs, amélioration à proposer?).
A l’inverse, je pourrais juste mettre en déclencheur de scénario 2 contact= 0 mais je perds l’appel des tags.
Ou alors je modifie scénario 1 pour qu’il vérifie lui-même la durée de Passage à contact=1 ?
Bref, j’en appelle aux magiciens des scénarios pour me proposer leur meilleure idée pour combiner mes deux besoins.

Hello,

J’avais eu un besoin similaire il y a pas mal de temps.

J’avais résolu l’affaire avec une technique toute bête : création d’une commande virtuelle reprenant ma commande d’état native.

Une action de déclenchement pour la commande native et une autre sur la virtuelle.

Salut,

J’ai du mal à comprendre concrètement ce que ça fait :frowning:

C’est quoi comme tags que tu passes dans le scénario 2 ?

Ca ne serait pas possible de tout inclure dans un seul et unique scénario qui aurait pour déclencheur le changement d’état du contact avec pour gérer le cas du scénario 1 un bloc qui programme un DANS 20 minutes ?

Les tags cest des strings à rechercher dans le centre de messages.

Si je mets un DANS, il faut gérer le cas où pendant les 20min le statut change et annule ce DANS ? il me semble que c’est le remove_inat qui pourrait faire ça non ?

Perso je mettrais une double sécurité :

  • Effectivement un remove_inat en début de scénario. Etant donné qu’il se déclencherait sur changement de la commande info du contact (qu’il passe à 0 ou à 1), le scénario se redéclenchera sur passage à 0 et pourra donc supprimer le bloc DANS programmé précédemment
  • A l’intérieur de ton bloc DANS un SI qui vérifie que le contact est toujours à 1 avant de faire quoi que ce soit (normalement non necessaire mais bon au cas où)
1 « J'aime »

Merci je vais tenter de metre ça en place. Mais je vois pas encore comment passer les tags vu que ce ne sera plus un appel via la commande.

Tu peux faire un screen de ce que tu as déja ?
Parce que je n’arrive pas bien à visualiser ce que tu fais

Bonjour,

J’ai aussi utilisé la solution de Bison avec une (ou plusieurs) commande virtuelle égale à la commande d’origine. ainsi sur chaque commande virtuelle il est possible de mettre une action sur valeur différente.
Simple et efficace !

1 « J'aime »

Ah mais oui quel idiot je pensais l’avoir mis dans mon premier post.

Merci pour le screen.

Alors oui effectivement, si ton scénario n’est pas déclenché par l’action sur valeur d’une commande, tu ne pourras pas pousser ces tags.

Cela dit, au vu de ce que tu passes comme tag, je pense que tu dois pouvoir faire une table de correspondance directement dans le scénario non ?

Du genre SI déclencheur du scénario == [Salon][Porte-fenetre cuisine][contact]
ALORS
tag(plugin) = thermosat
tag(equipement) = [Salon][Thermostat salon]

Ca ne conviendrait pas ?

Si en effet, ça fonctionnerait. Je trouve ça moins propre puisque ça oblige à modifier le scénario si j’ajoute un ouvrant mais ça le ferait. Je vais creuser ça et la piste de dupliquer la commande en virtuel (que je trouve dommage aussi).

C’est une façon de voir les choses :wink:

Perso je préfère ce genre de solutions car ça permet de centraliser la conf à un seul endroit, plutot que d’avoir des bouts un peu partout. Le jour où tu veux debugger ton scénario tu n’est pas obligé d’aller en plus ouvrir l’équipement pour voir ce qu’il y a comme tags dedans.

Mais bon les gouts et les couleurs :slight_smile:

Ca je suis pas vraiment fan même si je conçois que ça puisse dépanner.

1 « J'aime »

Hello,

Peut-être que la solution se trouve en amont, c’est quoi le but ? supprimer le message généré par le plugin thermostat ?

Je pense que ça à un petit rapport avec Bloc code pour effacer un message du centre de messages - #6 par rom.jou :wink:

1 « J'aime »

Aurel est tombé juste. J’ai un scénario qui efface les messages générés par le plugin thermostat (quand le thermostat est actif) quand la fenêtre est fermée, et j’ai un deuxième scenario pour l’été qui m’alerte si une fenêtre est ouverte et que la température extérieure est élevée.

En repensant à la suite du post, je pense que tu va avoir un souci avec cette méthode.
Je n’avais pas conscience que ton scénario était potentiellement mutualisé avec plusieurs ouvrants, or si tu utilise la technique du DANS et du remove_inat, si tu veux vérifier plusieurs ouvertures le scénario risque de se marcher sur les pieds entre différents ouvrants.

Est ce que tu comptais t’en servir pour plusieurs ouvrants simultanément ?

Donc 1 seul scénario qui concerne le plugin thermostat ? il est sans doute possible de faire un scénario qui check les messages lors d’une fermeture ?

Oui tout à fait l’idée est d’avoir le même scénario (enfin 2) pour tous les ouvrants.

Oui c’est ce que fait mon « scénario 2 » actuellement, il checke les messages à la fermeture.

Oui mais il est déclenché par la commande, je pensais plus avec déclencheur provoqué