Condition avec opérateur MATCHES inopérante

Bonjour,
Je veux lancer une action si une variable contient un mot spécifique et ça ne fonctionne pas avec l’opérateur « matches »
Exemple :

**SI variable(vsubject) matches "error"**
**    Alors...**

Dans mon cas, le contenu de la variable est
" *"Erreur exécution de la commande [MAISON][Scripts Caméra Extérieure][Activation] : Echec de la requête HTTP : 192.168.1.36/312c690dad39f912c393a5eae45fcfaa/command/changestatus?status=on cURL error : Failed to connect to 192.168.1.36 port 80 after 9 ms: Couldn't connect to server"*"

si je teste dans l’outil testeur d’expression : variable(vsubject) matches « error » j’ai le résultat :

**Attention : il doit y avoir un souci, car le résultat est le même que l'expression**
Je vais évaluer : **"Erreur exécution de la commande [MAISON][Scripts Caméra Extérieure][Activation] : Echec de la requête HTTP : 192.168.1.36/312c690dad39f912c393a5eae45fcfaa/command/changestatus?status=on cURL error : Failed to connect to 192.168.1.36 port 80 after 9 ms: Couldn't connect to server" matches "error"**
Résultat : **"Erreur exécution de la commande [MAISON][Scripts Caméra Extérieure][Activation] : Echec de la requête HTTP : 192.168.1.36/312c690dad39f912c393a5eae45fcfaa/command/changestatus?status=on cURL error : Failed to connect to 192.168.1.36 port 80 after 9 ms: Couldn't connect to server" matches "error"**

je n’ai pas de résultat « true » ou « false », mon expression est incorrecte ou est-ce un soucis avec l’opérateur « matches » ?

JEEDOM 4.4.19
PHP 8 Debian12

Bonjour,

Première chose: lorsque vous copiez un « code », une « expression jeedom », un « log » etc il faut absolument utiliser un Texte préformaté (bouton </>) sinon cela transforme les caractères et le résultat est illisible.


Concernant votre problème, relisez la doc de la syntaxe matches: https://doc.jeedom.com/fr_FR/core/4.4/scenario?theme=light#Opérateurs%20de%20comparaison%20et%20liens%20entre%20les%20conditions
Il y a des exemples:

vous n’avez pas utilisé de slash / autour du texte

1 « J'aime »

Bonjour,

Pour commencer, la syntaxe du testeur d’expression devrait être :

'variable(vsubject)' matches  '/error/' ==1

Le ==1 pour avoir « true ».

Ensuite, votre variable contient un caractère non compatible. Le

En l’enlevant, ça donne ça :

1 « J'aime »

Merci pour vos réponses, dsl pas réveillé ce matin quand j’ai lu la doc

Non, c’est inutile, le « matches » est un opérateur, il renvoit donc déjà 0 ou 1 selon si c’est vrai ou faux

quelques exemples d’utilisation :

Norbert

1 « J'aime »

Le but était d’avoir « true » pas « 1 ». :wink:

Quel intérêt ?

C’est tout pareil !

[2024-10-31 16:21:18][SCENARIO] -- Début : . Tags : {"#trigger#":"user","#trigger_name#":"","#trigger_id#":"","#trigger_message#":"Scénario lancé manuellement","#trigger_value#":"admin"}
[2024-10-31 16:21:19][SCENARIO] - Exécution du sous-élément de type [condition] : if true
[2024-10-31 16:21:19][SCENARIO] Evaluation de la condition : [true] = Vrai
[2024-10-31 16:21:19][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-10-31 16:21:19][SCENARIO] Ajout du message suivant dans le centre de message : a afficher si true
[2024-10-31 16:21:19][SCENARIO] - Exécution du sous-élément de type [condition] : if 1
[2024-10-31 16:21:19][SCENARIO] Evaluation de la condition : [1] = 1
[2024-10-31 16:21:19][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-10-31 16:21:19][SCENARIO] Ajout du message suivant dans le centre de message : a afficher si 1
[2024-10-31 16:21:19][SCENARIO] Fin correcte du scénario
------------------------------------

image

Norbert

Celui de répondre à la question.

je n’ai pas de résultat « true » ou « false »

Ben c’est pareil, ngrataloup l’a démontré ci-dessus.

Donc aucun intérêt

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