Test d'une chaine de caractère et construction

Hello,

Je galère pour vérifier une chaine récupérée par script HTTP.

La chaine autre me donne exactement (les heures minutes bougent mais c’est pour le principe des ").

"{"heure_demarrage":"00:00","heure_arret":"00:00","temperature":10,"heure":10,"minute":22}"

1ère question, l’égalité.

j’ai tout tenté avec ’ ’ ou " " comme la doc donne ; ou même '" (cote/guillemets). Rien à faire.
https://doc.jeedom.com/fr_FR/core/3.3/scenario
Une idée ?

2e question, construire une chaine en fonction de l’heure. Comme je n’arrive pas à faire l’égalité, je ne sais pas si le fait d’introduire du php dans la chaine va poser problème. J’aimerai générer dynamiquement l’heure et les minutes pour faire le test. Je connais tous les autres éléments (démarrage, arrêt, consigne).

Merci !

#[Agrégateurs][PV Routeur (HTTP)][Minuteur]# == "{"heure_demarrage":"00:00","heure_arret":"00:00","temperature":10,"heure":date("H"),"minute":date("i")}"

Bonjour,

C’est une chaîne au format json, il ne faut pas comparer comme chaine ni construire cette chaîne manuellement mais la decoder en json
Voir doc php json_decode & json_encode

Edit: avec une commande script/json il est possible d’extraire directement les données (voir doc du plugin)

1 « J'aime »

Déjà merci de me répondre :).

Alors effectivement, pour traiter les json pas de souci.
Mais par contre quand je créé une info autre de type json avec plugin script, j’ai une erreur de curl.

image

Une idée ?
Via navigateur, cela répond bien à l’action HTTP :
image

Bonjour,

C’est dans la partie Paramètres (URL du fichier JSON) qu’il faut mettre ton URL
Dans la requête, heure_demarrage devrait alors aller récupérer 00:00

Hurmf, merci à vous pour le JSON.

par contre pour l’égalité, je fais chou blanc.
du coup, je reviens au point 1, l’égalité avec la chaine de caractère d’une info autre.

J’ai tenté :

== 00:00
== '00:00'
== "00:00"
matches "/00:00/"
matches "00:00"
matches 00:00

Salut,

Ca donne quoi au testeur d’expression ?
Car chez moi ‹ 00:00 › == ‹ 00:00 ›, renvoie true

image

Justement celui de gauche, il n’y a pas les cotes.

EDIT : visiblement le fait de mettre entre ‹  › l’info, ça règle le problème.
pour moi c’est nouveau…

'#[Agrégateurs][PV Routeur (JSON)][H_démarrage]#' == '00:00' AND '#[Agrégateurs][PV Routeur (JSON)][H_arrêt]#' == '00:00' AND '#[Agrégateurs][PV Routeur (JSON)][Température]#' == '10' AND '#[Agrégateurs][PV Routeur (JSON)][Heure_courante]#' == 'date("H")' AND '#[Agrégateurs][PV Routeur (JSON)][Min_courante]#' == 'date("i")'

Il faut bien mettre entre ' ' car tu compares des chaines de caractères, ça ne me semble pas trop nouveau.

Toutefois je pense que tu étais obligé de passer par la conversion du JSON parce que ça m’étonnerais que ça fonctionne pour ta comparaison de départ.

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.