Conditions "0 = absent" dans scenario?

Bonjour,

Regardez mon scénario :


savez vous comment ca ce fais qu’il me dit que « 0 = absent » ?

voila le virtuel : j’ai volontairement mis 10 pour absent dans valeur pour voir si ca fonctionnait toujours et ca fonctionne…

Bonsoir,

L’état est vide, il faut que tu mettes une valeur et appuyant sur la case action

Bonsoir,

Me demande si j’ai bien compris ta question.

Dans ton virtuel, en cliquant sur l’action Absent tu demandes à mettre l’état à 0 (habituellement et non 10 je suppose).

Donc l’état vaut 0 et non Absent. Partant de là, dans le scénario, la comparaison donne 0 == 'Absent'

Il faudrait donc plutôt comparer de cette façon :

si presence_yohan == 0 && presence_marina == 0

Et au passage mettre la commande État en binaire dans le virtuel, c’est mieux que Autre

TU as tout compris… Mais pourquoi il me valide le résultat 0 == « Absent » ?

Ou alors je comprend. rien lol

C’est parce que tu compares un nombre (0) à une chaine de caractère (Absent). Dans ce cas Jeedom transforme la chaine de caractère (Absent) en 0 et du coup comme 0 == 0 alors l’expression devient vraie

2 « J'aime »

Bonjour,

Pour une comparaison stricte il faut 0 === "Absent".
Là tu auras « false » en résultat.

1 « J'aime »

J’aurai eu « présent » au lieu de « absent », il aurai qd meme transformé en 0 je suppose ?

au final je m’y perd… jeedom prend quoi en comparaison dans mon virtuel ? Le nom de la commande, dans mon cas absent, ou la valeur de l’état ?

Bonjour,

La valeur de ta commande (tu peux tester dans l’évaluateur d’expression). Donc 0 ou 1.

Mais il ne faut pas mettre '0' mais simplement 0

oui mais la dans mon cas, la valeur de ma commande était 10… pourquoi il me donnait 0…

Parce que comme expliquait @Bison tu compares des pommes avec des poires :wink:

Il faut mettre blabla[Etat] == 0 (ou 1).

ok je comprend mieu… par contre je peu aussi comparer Absent == Absent, ca c’est possible ?

Oui car tu vas comparer (ne pas oublier les ' sur la condition, mais pas sur le nom de la commande) 2 chaînes de caractères entre elles.

Comme ca ?

Oui.
Tu peux tester dans le « testeur d’expression » disponible dans le menu « outils ».

A noter qu’il faut éviter les « ET » (même si cela fonctionne) et utiliser à la place « && ».

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.