Quelle formule pour prendre en compte 0,0 == 0,0

helloo

je reçois une valeur dans un virtuel de type « autre »:

quand celle-ci équivaut à 0,0 (ce sont des coordonnées GPS), comment faire pour ne pas avoir d’erreur et la détecter correctement?

actuellement avec == ou matches et «  » ‹  › etc. je n’arrive qu’à des erreurs:

------------------------------------
[2025-02-04 15:45:28][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-04 15:45:28][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# matches 0,0
[2025-02-04 15:45:28][SCENARIO] Evaluation de la condition : [0,0 matches 0,0] = 0,0 matches 0,0
[2025-02-04 15:45:28][SCENARIO] Expression non valide : 0,0 matches 0,0
[2025-02-04 15:45:28][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# != "0,0"
[2025-02-04 15:45:28][SCENARIO] Evaluation de la condition : [0,0 != "0,0"] = 0,0 != "0,0"
[2025-02-04 15:45:28][SCENARIO] Expression non valide : 0,0 != "0,0"
[2025-02-04 15:45:28][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-04 15:45:28][SCENARIO] Action stop
[2025-02-04 15:45:28][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-02-04 15:45:50][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-04 15:45:50][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# === 0,0
[2025-02-04 15:45:50][SCENARIO] Evaluation de la condition : [0,0 === 0,0] = 0,0 === 0,0
[2025-02-04 15:45:50][SCENARIO] Expression non valide : 0,0 === 0,0
[2025-02-04 15:45:50][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# != "0,0"
[2025-02-04 15:45:50][SCENARIO] Evaluation de la condition : [0,0 != "0,0"] = 0,0 != "0,0"
[2025-02-04 15:45:50][SCENARIO] Expression non valide : 0,0 != "0,0"
[2025-02-04 15:45:50][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-04 15:45:50][SCENARIO] Action stop
[2025-02-04 15:45:50][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-02-04 15:46:00][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-04 15:46:00][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# === "0,0"
[2025-02-04 15:46:00][SCENARIO] Evaluation de la condition : [0,0 === "0,0"] = 0,0 === "0,0"
[2025-02-04 15:46:00][SCENARIO] Expression non valide : 0,0 === "0,0"
[2025-02-04 15:46:00][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# != "0,0"
[2025-02-04 15:46:00][SCENARIO] Evaluation de la condition : [0,0 != "0,0"] = 0,0 != "0,0"
[2025-02-04 15:46:00][SCENARIO] Expression non valide : 0,0 != "0,0"
[2025-02-04 15:46:00][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-04 15:46:00][SCENARIO] Action stop
[2025-02-04 15:46:00][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-02-04 15:46:11][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-04 15:46:12][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# === '0,0'
[2025-02-04 15:46:12][SCENARIO] Evaluation de la condition : [0,0 === '0,0'] = 0,0 === '0,0'
[2025-02-04 15:46:12][SCENARIO] Expression non valide : 0,0 === '0,0'
[2025-02-04 15:46:12][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# != "0,0"
[2025-02-04 15:46:12][SCENARIO] Evaluation de la condition : [0,0 != "0,0"] = 0,0 != "0,0"
[2025-02-04 15:46:12][SCENARIO] Expression non valide : 0,0 != "0,0"
[2025-02-04 15:46:12][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-04 15:46:12][SCENARIO] Action stop
[2025-02-04 15:46:12][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-02-04 15:46:25][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-04 15:46:25][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# matches '0,0'
[2025-02-04 15:46:25][SCENARIO] Evaluation de la condition : [0,0 matches '0,0'] = 0,0 matches '0,0'
[2025-02-04 15:46:25][SCENARIO] Expression non valide : 0,0 matches '0,0'
[2025-02-04 15:46:25][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# != "0,0"
[2025-02-04 15:46:25][SCENARIO] Evaluation de la condition : [0,0 != "0,0"] = 0,0 != "0,0"
[2025-02-04 15:46:25][SCENARIO] Expression non valide : 0,0 != "0,0"
[2025-02-04 15:46:25][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-04 15:46:25][SCENARIO] Action stop
[2025-02-04 15:46:25][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-02-04 15:46:41][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-04 15:46:41][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# matches "0,0"
[2025-02-04 15:46:41][SCENARIO] Evaluation de la condition : [0,0 matches "0,0"] = 0,0 matches "0,0"
[2025-02-04 15:46:41][SCENARIO] Expression non valide : 0,0 matches "0,0"
[2025-02-04 15:46:41][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# != "0,0"
[2025-02-04 15:46:41][SCENARIO] Evaluation de la condition : [0,0 != "0,0"] = 0,0 != "0,0"
[2025-02-04 15:46:41][SCENARIO] Expression non valide : 0,0 != "0,0"
[2025-02-04 15:46:41][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-04 15:46:41][SCENARIO] Action stop
[2025-02-04 15:46:41][SCENARIO] Fin correcte du scénario

à noter: aucun souci quand la valeur n’est pas de 0,0:

[2025-02-04 15:54:46][SCENARIO] - Exécution du sous-élément de type [condition] : if #[MOUV][Owntrack][Geoloc]# matches "/40.40/" ET #[MOUV][Owntrack][Geoloc]# matches "/,4.40/"
[2025-02-04 15:54:46][SCENARIO] Evaluation de la condition : ["49.191117,6.1305953" matches "/40.40/" ET "49.191117,6.1305953" matches "/,4.40/"] = Faux

je me suis dit que peutêtre que la valeur qui arrive sur le virtuel contient un signe spécial, un caractère caché… mais sinon c’est autre chose, lié au type « autre » peutetre? il faudrait que j’essaie avec « numérique » si ca passerait…

mercii

As tu essayé avec 3= === ?

Bonjour,
La valeur de la commande étant de type Autre, il faut la mettre entre " afin de comparer 2 chaines de caractères.

"#[MOUV][Owntrack][Geoloc]#"
2 « J'aime »

oh wow c’est la première fois que je vois ca, merci beaucoup à vous 2. je teste tout cela :pray:

bon ben ya visiblement une bizarrerie malgré tout car toutes ces pistes donnent des erreurs… donc peutetre un caractère spécial ou caché qui est retourné par owntrack quand il envoie 0,0 … je vais creuser encore plus…

[2025-02-05 16:19:18][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-05 16:19:18][SCENARIO] - Exécution du sous-élément de type [condition] : if "#[MOUV][Owntrack][Geoloc]#" matches 0,0
[2025-02-05 16:19:18][SCENARIO] Evaluation de la condition : [0,0 matches 0,0] = 0,0 matches 0,0
[2025-02-05 16:19:18][SCENARIO] Expression non valide : 0,0 matches 0,0
[2025-02-05 16:20:44][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-05 16:20:44][SCENARIO] - Exécution du sous-élément de type [condition] : if "#[MOUV][Owntrack][Geoloc]#" == 0,0
[2025-02-05 16:20:44][SCENARIO] Evaluation de la condition : [0,0 == 0,0] = 0,0 == 0,0
[2025-02-05 16:20:44][SCENARIO] Expression non valide : 0,0 == 0,0
[2025-02-05 16:20:49][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-05 16:20:49][SCENARIO] - Exécution du sous-élément de type [condition] : if "#[MOUV][Owntrack][Geoloc]#" === 0,0
[2025-02-05 16:20:49][SCENARIO] Evaluation de la condition : [0,0 === 0,0] = 0,0 === 0,0
[2025-02-05 16:20:49][SCENARIO] Expression non valide : 0,0 === 0,0

Bonjour,

Je pense que vous pouvez écrire :

'#[MOUV][Owntrack][Geoloc]#' matches "/0,0/"

Ne pas oublier le « / »

Bonjour,

Vous ne pouvez comparez que 2 chaines de caractères entre elles. Il faut que les 2 cotés de l’opérateur de comparaison soient des chaines de caractères. Sinon : expression invalide.

'#[MOUV][Owntrack][Geoloc]#' == "0,0"

0,0 n’est pas une valeur numérique à cause de la virgule. Il faut mettre les "

Dans le testeur d’expression:
image ou image
Expression non valide:
image

Avec matches, ça ne marche pas toujours. Il faut utiliser == ou === pour tester si la valeur de la commande est "0,0".
image image

Ben si ça marche :

10,01 contient 0,0 → oui
0,0 contient 0,0 → oui

Je pense que vous lisez à l’envers l’expression avec « matches »

Oui, mais le pb de base dans le titre de cette discussion est de tester si la valeur de la commande est 0,0

J’ai précisé mon post au dessus.

Avez-vous le paramètre « Guillemets automatiques » coché dans Réglages>Système>Configuration>Équipements ?

Si oui vous pouvez écrire

#[MOUV][Owntrack][Geoloc]# == "0,0"

Si non

'#[MOUV][Owntrack][Geoloc]#' == "0,0"

Exemple chez moi :

Sur Jeedom avec case décochée il faut des simples quotes autour de la commande :

Sur Jeedom avec case cochée (par défaut) il ne faut rien autour de la commande :

La probabilité que 0,0 se retrouve dans des coordonnées GPS est très faible puisque il n’y a pas de 0 en fin de valeur
Donc si la commande contient 0,0 c’est qu’elle vaut 0,0 … mais peut-être avec un espace avant ou après ou autres caractères spéciaux ?

haaaaa mais effectivement, une valeur de type AUTRE dans un virtuel ne peut pas être existante sous la forme 0,0 j’ai constaté:

j’envoie du toto

ca devient toto:

j’envoie du 0,0 :

ca reste toto.

et si j’envoie du 0,0,0 ca passe:

:expressionless:

et le log ne signale pas d’erreur particulière quand j’envoie du 0,0… bug?

[2025-02-06 10:12:50][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2025-02-06 10:12:50][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-06 10:12:51][SCENARIO] Changement de [MOUV][Owntrack][Geoloc] à 0,0
[2025-02-06 10:12:51][SCENARIO] - Exécution du sous-élément de type [condition] : if '#[MOUV][Owntrack][Geoloc]#' == "0,0"
[2025-02-06 10:12:51][SCENARIO] Evaluation de la condition : ['0,0,0' == "0,0"] = Faux
[2025-02-06 10:12:51][SCENARIO] - Exécution du sous-élément de type [action] : else
[2025-02-06 10:12:51][SCENARIO] Action stop
[2025-02-06 10:12:51][SCENARIO] Fin correcte du scénario

0,0 est interprétée comme une valeur numérique de valeur 0, il faut donc des guillemets pour qu’elle soit vue comme un texte
Dans votre commande « Event » vous devez mettre "0,0" dans « valeur »

bon c’est vrai que mon test n’apporte pas grand chose car owntrack, pour une raison indéterminée, rarement, envoie 0,0 au lieu de ma position GPS réelle.

et lui, il arrive à peupler le virtuel de type « autre » avec 0,0 — ce que je narrive visiblement pas à faire via la commande « event » dans un scénario. mais peu importe, c’était juste pour les tests :wink:

je vais rester comme ça, et simplement tester la condition correspondant à ma position GPS précise, hors 0,0

merci à tous les participants

Il suffit de mettre des guillemets :smile:

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.