Armer l'alarme si tous les détecteurs d'ouverture (et ou) de mouvement sont en bonne position

déclencheur : alarme en cours d’armement

condition: si tous les détecteurs d’ouverture sont « fermés » (et ou) de mouvement sont inactifs.

impossibilité de voir l’état d’un détecteur dans la fonction si ?

Tu peux le faire avec un bloc « Récupérer le dernier état » + « Condition sur variables » :slight_smile:

Pour faire un « ET », tu peux juste mettre plusieurs conditions, ça marchera !

encore désolé ça ne marche pas. j’explique:je fais une scène déclenchée par: alarme en cours d’armement, je fais une action: récupérer le dernier état du détecteur d’ouverture ensuite je fais une condition sur variable sélectionne le détecteur d’ouverture en question si différent de Fermé alors je passe l’alarme en désarmée , j’envoie un sms pour signalé la fenêtre ouverte sinon: j’envoie un sms alarme armée. résultat: que le détecteur soit sur ouvert ou fermé le compte à rebours reste sur 0 et il ne se passe rien. c’est quand même un gros problème comment peut on armer une alarme avec une fenêtre ou une porte ouverte d’autant plus si on veut utiliser l’alarme en mode partiel.

si je mets comme déclencheur : alarme armée en fin de compte à rebours l’alarme passe en mode désarmée que se soit détecteur ouvert ou fermé et je ne reçois aucun message. je crois que je vais trouver une autre solution pour remplacer mon alarme qui ne va plus m’être utile vu que les opérateurs abandonnent la 2G. je suis un peux déçu, cette solution me plaisait bien.

quelle aventure, en fait je viens d’essayer avec les valeurs 1 ou 0 à la place de Ouvert et Fermé et ça marche avec le déclencheur alarme armée. si je prends comme déclencheur alarme en cous d’armement ça fonctionne mais si la fenêtre est ouverte ça bloque le compte à rebours sur zéro mais ça n’arme pas l’alarme. on peut dire que le problème est en grande partie résolu.

Bien joué d’avoir trouvé avec 0 et 1 ! Je t’explique le pourquoi, et comment finir de faire marcher ton scénario :slight_smile:

1. Pourquoi « Ouvert » / « Fermé » ne marchait pas

Le bloc « Condition sur variables » compare la valeur brute stockée par Gladys, pas le libellé affiché dans l’interface. Pour une fonctionnalité binaire, la valeur est toujours 0 ou 1, et « Ouvert »/« Fermé » n’est que la traduction affichée à l’écran. La comparaison étant stricte, "Fermé" (texte) n’est jamais égal à 1 (nombre) : la condition n’était donc jamais validée et la scène s’arrêtait silencieusement, d’où ton « il ne se passe rien ».

Les valeurs à utiliser :

Type de capteur 0 1
Détecteur d’ouverture Ouvert Fermé
Détecteur de mouvement Pas de mouvement Mouvement détecté

2. ET ou OU ?

Petite précision par rapport à ma réponse précédente : à l’intérieur d’un même bloc « Condition sur variables », les conditions sont reliées par un OU (le bloc passe dès qu’une seule est vraie). Pour faire un ET, il faut ajouter plusieurs blocs « Condition sur variables » : ils doivent alors tous être validés pour que la scène continue. C’est rappelé directement dans l’interface depuis la 4.84.3.

Dans ton cas, le OU est justement ce qu’il te faut : tu veux annuler l’armement si au moins un capteur est en défaut. Donc un seul bloc condition, avec une ligne par capteur :

  • Porte d'entrée - Ouverture = 0
  • Fenêtre salon - Ouverture = 0
  • Détecteur salon - Mouvement = 1

3. La scène complète

  1. Déclencheur : « Alarme armée » (fin du compte à rebours)
  2. « Récupérer le dernier état » : un bloc par capteur (ils doivent être au-dessus du bloc condition, sinon les variables n’apparaissent pas dans la liste déroulante, c’est ce qui répond à ta question « impossibilité de voir l’état d’un détecteur dans la fonction si ? »)
  3. « Condition sur variables » avec les lignes ci-dessus
  4. « Envoyer un message »
  5. « Changer le mode de l’alarme » → Désarmée

Mets bien l’envoi du message avant le désarmement.

4. Le bug que tu as rencontré avec « Alarme en cours d’armement »

Là tu es tombé sur un vrai bug de Gladys, ce n’est pas toi : pendant le compte à rebours, la maison est encore enregistrée comme « désarmée » en base (elle ne passe à « armée » qu’à la fin du délai). Du coup l’action « Désarmer » annule bien l’armement, mais elle renvoie une erreur « la maison est déjà désarmée » avant d’avoir prévenu l’interface, d’où le compte à rebours qui reste figé à 0 alors que l’alarme n’est en réalité pas armée.

En attendant que je corrige ça, reste sur le déclencheur « Alarme armée » : l’alarme s’arme une fraction de seconde puis se désarme proprement, et l’interface se met bien à jour.

Correctif pour ton souci :

J’ai fait 2 améliorations pour toi :

  • Correctif sur le bug de désarmement
  • Dans les scènes, la condition sur variable affiche les valeurs possibles plutôt que de faire deviner à l’utilisateur 0 et 1

Tous les deux sont live dans la 4.84.4 :