'+0E47ED66'== 0 me donne un résultat True
alors que '+0E47ED66'== 1 me donne bien un résultat False
Il considère que le texte est égale à zéro ou égale à rien et donc donne une valeur True ce qui me génére des erreurs dans mon scénario de lecteur de badge
L’un d’entre vous connait il la solution pour que cette comparaison avec 0 soit False ?
je ne connais pas cette fonction, mais sauf erreur de a part après recherche sur le net il semble que cette fonction entrait les nombres d’une chaine. Moi je cherche à la comparer.
saisie de 0 puis d’entrée
la comparaison 0 au code Rfid est toujours vrai
voila les log.
[2023-06-30 13:51:29][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Test Materiel][Clavier Zig 2][Commande] (ArmMode.Disarm).
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '1111'
[2023-06-30 13:51:29][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '1111'] = Faux
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '+0E47ED00'
[2023-06-30 13:51:29][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '+0E4xxx00'] = Vrai
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Séjour][Eclairage Sejour][Off]
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"ARRET","message":"Arr\u00eat alarme par badge Jean Marc"}
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '+A945EDxx'
[2023-06-30 13:51:29][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '+A94xxD03'] = Vrai
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Séjour][Eclairage Sejour][Off]
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"ARRET","message":"Arr\u00eat alarme par badge D\u00e9d\u00e9"}
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '+1Axxx03'
[2023-06-30 13:51:29][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '+1AxxED03'] = Faux
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '+A81BED03'
[2023-06-30 13:51:29][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '+A8xxxD03'] = Vrai
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Séjour][Eclairage Sejour][Off]
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"ARRET","message":"Arr\u00eat alarme par badge Marine"}
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '+ExxxED03'
[2023-06-30 13:51:29][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '+E9xxxD03'] = Vrai
[2023-06-30 13:51:29][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Séjour][Eclairage Sejour][Off]
[2023-06-30 13:51:29][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"ARRET","message":"Arr\u00eat alarme par badge Rose"}
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# == '+ADxxxD03'
[2023-06-30 13:51:30][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 == '+AD6xxx03'] = Vrai
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:30][SCENARIO] Exécution de la commande [Séjour][Eclairage Sejour][Off]
[2023-06-30 13:51:30][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"ARRET","message":"Arr\u00eat alarme par badge C\u00e9cilia"}
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Arm_All_Zones'
[2023-06-30 13:51:30][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Arm_All_Zones'] = Faux
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]# =='ArmMode.Arm_Night_Sleep_Only'
[2023-06-30 13:51:30][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm" =='ArmMode.Arm_Night_Sleep_Only'] = Faux
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]#==''
[2023-06-30 13:51:30][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0==''] = Vrai
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:30][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"CODE VIDE","message":"Code vide"}
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Test Matériel][Clavier Zig 2][Commande]#=='ArmMode.Disarm' && #[Test Matériel][Clavier Zig 2][Code]# !=1111
[2023-06-30 13:51:30][SCENARIO] Evaluation de la condition : ["ArmMode.Disarm"=='ArmMode.Disarm' && 0 !=1111] = Vrai
[2023-06-30 13:51:30][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-06-30 13:51:30][SCENARIO] Exécution de la commande [Present][SMS Jean Marc][Alarme Jeedom - Jean Marc] avec comme option(s) : {"background":"0","title":"ERREUR","message":"Erreur de saisie"}
[2023-06-30 13:51:30][SCENARIO] Fin correcte du scénario
Ça devrait, dans une certaine logique. Mais le langage PHP a choisi de ne pas demander à forcer le type d’une variable et s’adapte à ce qu’on lui défini en premier. C’est une facilité d’utilisation mais il a bien fallu faire des choix quand on compare des variables de type différents (toujours dans une optique de faciliter les choses sans doute).
Si on veut comparer sans laisser la main au moteur et le forcer à comparer avec les mêmes types (des choux avec des choux) ils ont prévu l’opérateur ===