Bonjour,
Je suis désolé, j’ai beau relire les différents messages de ce post, j’ai vraiment du mal à comprendre le problème, et même si problème il y a.
Je me répète sans doute, mais je pense qu’il faut changer d’angle et je vais donc plutôt expliquer comment ça fonctionne.
Il y a deux façons de traiter l’état un contacteur binaire :
- Soit on modifie l’état renvoyé par le capteur pour l’utiliser en tant que tel,
- Soit on ne modifie que ce qui doit être affiché, sans modifier l’état lui-même.
Cas N°1 :
Dans ce cas, on récupère l’état du capteur, et on inverse cet état.
Exemple :
Un capteur d’ouverture de porte, qui renvoie la valeur 1 lorsqu’il y a un contact (concrètement, l’interrupteur ILS encapsulé dans le module est activé par l’aimant à proximité = porte fermée), ou 0 s’il n’y a pas contact (porte ouverte).
Dans le fichier de config, on a donc ça :


La logique des scénarios derrière doit donc tenir compte de ce que représente cette valeur : 1 = pas d’alarme, 0 = déclenchement de l’alarme par exemple.
Si on souhaite raisonner à l’inverse, c’est à dire que l’on part du principe que 0 = porte fermée, 1 = porte ouverte, il suffit de cocher la case ‹ Inverser les valeurs binaires ›, et le tour est joué.

Résultat :
Et le fichier de config est modifié comme suit :

Mais pas de changement pour :

Bien entendu, le scénario d’alarme sera donc modifié pour Etat 0 = pas d’alarme, 1 = déclenchement de l’alarme.
Cas N°2
Dans ce cas, l’état reste comme il est : 0 ou 1, on n’y touche pas.
Donc en reprenant mon exemple, l’état renvoyé est 1 = porte fermée, 0 = porte ouverte.
Par contre, le fait de cocher la case ‹ Inverser › inverse la valeur de l’état à l’affichage uniquement.
Fichier de config :

Mais la valeur en elle-même n’est pas touchée. Aussi, si on fait des tests sur cette valeur binaire à partir de scénarios ou autre, celle-ci reste identique à celle renvoyée par le capteur :
J’espère avoir un peu éclairci le sujet.
Voir aussi ce post qui détaille ce problème.