Bonjour,
La lecture récente d’une réponse m’amène à poser cette question de compréhension: quand utilise t on = ou == .
Merci pour vos expliquations et votre aide
Bonne journée
Bonjour,
Concernant les Scénarios la documentation Jeedom devrait déjà bien te renseigner :
Scénarios Doc Officiel Jeedom
Vers le milieu tu trouveras « Opérateurs de comparaison et liens entre les conditions »
La question est intéressante, on parle de == dans la doc. Quid =?
Bonjour,
= est un opérateur d’affectation
Pour affecter une valeur à un tag lors du lancement d’un scénario : titi = ‹ Bonjour ›
== est un opérateur de comparaison
(variable(toto) == 3) vaut 1 si toto est égale à 3 et 0 sinon
Peut-être pas dans la doc mais ChatGPT indique :
Réponse de ChatGPT
Dans **Jeedom**, lors de la création de **scénarios** (via les blocs SI/ALORS/SINON), il est important de bien distinguer `=` et `==`, car ils ont des usages très différents :
---
### ✅ `==` : **Comparaison**
* Utilisé pour **comparer deux valeurs**.
* Il répond à la question : « Est-ce que la valeur A est **égale** à la valeur B ? »
**Exemples :**
* `#[Salon][Température][Valeur]# == 22`
> Cela teste si la température dans le salon est **égale à 22**.
* `#[Chambre][Présence][Etat]# == 1`
> Cela vérifie si quelqu’un est présent dans la chambre.
---
### ⚠️ `=` : **Affectation** (très rarement utilisé dans un scénario Jeedom)
* Sert à **donner une valeur à une variable**, **dans une action** (et non dans un bloc SI).
* Utilisé typiquement dans les blocs **"action"**, par exemple avec `variable()` pour affecter une valeur.
**Exemple :**
* `variable(maVariable) = 1`
> Cela **définit** la variable `maVariable` à 1.
> (À utiliser dans un bloc "action" avec la commande `Variable` de type `Définir`)
---
### Résumé pratique :
| Situation | Utiliser |
| --------------------------------------------------------- | -------- |
| Comparer une valeur dans un bloc `SI` | `==` |
| Attribuer une valeur à une variable dans un bloc `Action` | `=` |
Si c’est cette réponse, Aurel aurait du écrire OR 1==1
.
Pour avoir tester, les 2 cas fonctionnent !
.
.
Edit : Par habitude j’ai mis " || " pour le « OR » mais le « OR » fonctionne aussi
Pas avec un bloc code.
1 = 1;
1 == 1;
[2025-06-22 09:42:56][SCENARIO] - - -
[2025-06-22 09:42:56][SCENARIO] - /* - Execution du Bloc code n°1 - DEBUG NATIF ACTIF (php >= v7) */
[2025-06-22 09:42:56][SCENARIO] - - -
[2025-06-22 09:42:56][SCENARIO] - ERREUR PHP: syntax error, unexpected '=' à la ligne 1 !
[2025-06-22 09:42:56][SCENARIO] - - -
[2025-06-22 09:42:56][SCENARIO] - /* - Fin du Bloc code n°1 - */
[2025-06-22 09:42:56][SCENARIO] - - -
[2025-06-22 09:42:56][SCENARIO] Arrêt forcé du scénario pour cause d'erreur de syntaxe php ou de retour 'false'
[2025-06-22 09:42:56][SCENARIO] Action stop
[2025-06-22 09:42:56][SCENARIO] Durée d'exécution (depuis le 1er bloc code) : 8.74 millisecondes
[2025-06-22 09:42:56][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-06-22 09:43:18][SCENARIO] -- Début : Scenario lance manuellement.
[2025-06-22 09:43:18][SCENARIO] - Exécution du sous-élément de type [action] : code
[2025-06-22 09:43:18][SCENARIO] Exécution d'un bloc code
[2025-06-22 09:43:18][SCENARIO] - ----------------------------------------
[2025-06-22 09:43:18][SCENARIO] - - Framework sc v0.996b
[2025-06-22 09:43:18][SCENARIO] - - Vos scenarios en PHP
[2025-06-22 09:43:18][SCENARIO] - - by dJuL
[2025-06-22 09:43:18][SCENARIO] - ----------------------------------------
[2025-06-22 09:43:18][SCENARIO] - INFO: DOCUMENTATION DISPONIBLE EN LOCAL EN CLIQUANT ICI
[2025-06-22 09:43:18][SCENARIO] - - -
[2025-06-22 09:43:18][SCENARIO] - /* - Execution du Bloc code n°1 - DEBUG NATIF ACTIF (php >= v7) */
[2025-06-22 09:43:18][SCENARIO] - - -
[2025-06-22 09:43:18][SCENARIO] - - -
[2025-06-22 09:43:18][SCENARIO] - /* - Fin du Bloc code n°1 - */
[2025-06-22 09:43:18][SCENARIO] - - -
[2025-06-22 09:43:18][SCENARIO] Durée d'exécution (depuis le 1er bloc code) : 0.15 millisecondes
[2025-06-22 09:43:18][SCENARIO] Fin correcte du scénario
Pour le 1=1 : C’est que Jeedom corrige beaucoup de chose pour l’utilisateur.
Note : il y a aussi = = =
Quelle est la différence entre =, == et === en JavaScript ?
Différence entre les opérateurs de comparaison == et === en PHP | Delft Stack
Je m’en suis douté ! mais si Jeedom laisse passer cela sans indiquer une erreur de syntaxe, nous nous exposons potentiellement à des problèmes lors de futures MAJ qui seraient moins permissives.
Je suis partisan de toujours essayé de prendre de bonnes habitudes dès le départ.
Pour les exemples cités en javascript : Heu… Mon modeste niveau Jeedom me permet juste de faire quelques scénarios
Je retiendrai donc " || 1 == 1 " pour forcé « True » un test sur condition.
Bonjour,
Ca fonctionne aussi avec || 1
ou || true
Dans la même logique, pour rendre fausse une condition, vous pouvez ajouter && false
Super Cool ! C’est vraiment une journée ou j’apprends plein de trucs !
(Et la journée ne fait que commencer ! )
Merci pour ces compléments !
Bonjour à tous,
Bon moi je me perds un peu mon modeste niveau a du mal à suivre.
Pour moi ce qui est important c’est de savoir si et quand j’utilise = ou ==.
si je comprends bien, Jeedom opère une correction mais il n’est pas prouvé que cela dure avec les MAJ à venir ?
je pense retenir cette formule
Bonjour.
Oui, mais il y a d’autres opérateurs qui sont traduits et cette traduction, même infime, prend.du temps.
Par exemple, quand vous écrivez Et ou And il faudrait écrire && pour être plus prêt du code natif. Mais cela rend Jeedom moins accessible.
Pareil pour Ou or c’est en fait || qu’il faudrait écrire.
Bonjour,
[quote=« Fabrice, post:14, topic:141491 »]
Par exemple, quand vous écrivez Et ou And il faudrait écrire && pour être plus prêt du code natif. Mais cela rend Jeedom moins accessible.
Pareil pour Ou or c’est en fait || qu’il faudrait écrire.
J’ai rectifié depuis quelques temps tous mes scénarios afin de respecter cette syntaxe.
Dans le cas de ma question, la réponse de @Bonjour peut être retenue en respect de l’avenir ?
Dans un cas précis pour un déclencheur, si j’écris
#[alarme][capteurs AR][capteur mouvement]#==1
je l’écris bien ou faut il
#[alarme][capteurs AR][capteur mouvement]#=1
Pour un test, il faut utiliser les opérateurs de comparaisons
= est un opérateur d’affectation
Dans un déclencheur, il s’agit d’une comparaison et il faut utiliser ==
Dans les scénarios Jeedom, je pense que le = seul n’est utilisé que pour les tags ou dans les blocs codes
Du même avis je regrette simplement de ne pas avoir posé cette question plus tôt
C’est aussi lié au fait qu’une assignation est souvent interprétée comme vrai; donc a=5
est aussi « vrai » (mais peut-être pas a=0
, à tester)
Ps: il ne faut pas écrire || 1==1
mais juste || 1
ou plus claire || true