If probleme

Tags: #<Tag:0x00007f38506e2f50>

Page : index.php?v=d&p=scenario&id=141
Jeedom_version : 4.0.40
Uname : Linux Jeedom 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux


Message :
Bonjour,

Est-ce normal que la réponse du If dans le scénario ci dessous soit Vrai
Evaluation de la condition : ["" >= 0000 AND “” < 2400] = Vrai

Cordialement
Pascal




2020-02-17 23:08:55][SCENARIO] Lancement du scénario en mode synchrone
[2020-02-17 23:08:55][SCENARIO] Start : Lancement provoqué par le scénario : [MaPa][Temps][Reveils]. Tags : {"#acte#":“active”,"#revheu#":"#consigne#"}
[2020-02-17 23:08:55][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-02-17 23:08:55][SCENARIO] Suppression des blocs DANS et A programmés du scénario
[2020-02-17 23:08:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-02-17 23:08:55][SCENARIO] Evaluation de la condition : [“active” == “desactive”] = Faux
[2020-02-17 23:08:55][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-02-17 23:08:55][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-02-17 23:08:55][SCENARIO] Evaluation de la condition : ["" >= 0000 AND “” < 2400] = Vrai
[2020-02-17 23:08:55][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-02-17 23:08:55][SCENARIO] Changement de [MaPa][Reveil Marina][HHMM] à
[2020-02-17 23:08:55][SCENARIO] Exécution du sous-élément de type [condition] : at
[2020-02-17 23:08:55][SCENARIO] Evaluation de la condition : [2330] = 2330
[2020-02-17 23:08:55][SCENARIO] Tâche : 1296 programmée à : 2020-02-17 23:30:00
[2020-02-17 23:08:55][SCENARIO] Fin correcte du scénario.

Salut,

Comme ça c’est difficile de répondre, mais c’est certain que là tu mélanges des “chaines” avec des “numériques”… C’est pas la bonne méthode de comparaison

Oui c’est normal… comme tu compare une string vide à 0 (et pas “0”) php compare à un int. Et comme une string vide ("") est égale à false en bool ou 0 en int, ben “” == 0 est vrai.

Je dirais même que c’est assez courant qu’une chaine vide soit évaluée en 0 dans une comparaison numérique, y’a souvent des cast vers du nombre dans ces cas.

[Note] ce serai bien d’avoir ton scénario pour se faire une meilleure idée

C’est pas à moi que la réponse s’adresse, je suppose mais à @mapa

Pardon Naboleo, j’ai appuyé sur le premier “répondre” que mon oeil à croisé…
C’est bien évidemment destiné à Mapa
Je ferai plus gaffe à l’avenir!

Bonjour,

Pour moi si ce n’est pas numerique cela aurait dû répondre faux. Mais vous dites que c’est normal alors je m’incline.
Cordialement.

C’est pas le core çà, c’est du php pur et dur

C’est ton if ? une variable, un tag ? met une valeur par default ) ‘None’ comme çà çà marchera (‘None’ ne renverra pas false/0)

Bonjour,

C’est bon j’ai corrigé j’ai ajouté dans le if virtual !="" AND …
mais je suis un vieux programmeur et dans mon jeune temps en cobol cela fonctionnait pas comme cela
Il faut que je me mette a la page :slight_smile:

Cordialement
Pascal

cordialement