Bonjour,
Je cherche a récupérer la valeur conso_base
pour l’écrire dans un virtuel après.
Mon problème c’est que cette valeur n’a pas un format correcte car le nombre à un zéro devant.
Je souhaite trouvé un code PHP compatible pour le supprimer, mais pour l’instant sans succès.
Est-ce possible via un scénario code ?
Pour commencer, voici ce que j’arrive à lire dans mon scénario (log)
[2023-02-21 00:36:02][SCENARIO] -- Start : Scenario execute automatiquement sur programmation.
[2023-02-21 00:36:02][SCENARIO] - Exécution du sous-élément de type [action] : code
[2023-02-21 00:36:02][SCENARIO] Exécution d'un bloc code
[2023-02-21 00:36:02][SCENARIO] HTTP Response : 200
[2023-02-21 00:36:02][SCENARIO] DATA : '
{
"option_tarifaire" : 0,
"tarif_courant" : 0,
"isousc" : 45,
"conso_base" : 024732216,
"conso_hc" : 0,
"conso_hp" : 0,
"conso_hc_b" : 0,
"conso_hp_b" : 0,
"conso_hc_w" : 0,
"conso_hp_w" : 0,
"conso_hc_r" : 0,
"conso_hp_r" : 0,
"type_imp_0" : 0,
"type_imp_1" : 1,
"type_imp_2" : 1,
"type_imp_3" : 1,
"type_imp_4" : 1,
"type_imp_5" : 1,
"label_entree1" : "PC Info ",
"label_entree2" : "Eclairage ",
"label_entree3" : "Chauffage",
"label_entree4" : "Chaudiere ",
"label_entree5" : "Prises de Courant",
"label_entree_imp0" : "Gaz",
"label_entree_imp1" : "Eau",
"label_entree_imp2" : "Eau",
"label_entree_imp3" : "Eau",
"label_entree_imp4" : "Eau",
"label_entree_imp5" : "Eau",
"entree_imp0_disabled" : 1,
"entree_imp1_disabled" : 1,
"entree_imp2_disabled" : 1,
"entree_imp3_disabled" : 1,
"entree_imp4_disabled" : 1,
"entree_imp5_disabled" : 1
}'
[2023-02-21 00:36:02][SCENARIO] Parsed JSON : NULL
[2023-02-21 00:36:02][SCENARIO] conso_base Collectée :
[2023-02-21 00:36:02][SCENARIO] Fin correcte du scénario
Comme on peut le voir à la fin du log, mon problème vient à la lecture de la valeur
$conso_base = $parsed_json->{'conso_base'};
//$conso_base = (((value|regex_replace("([ :])0+(\\d+),", "\g<1>\g<2>,")|from_json).conso_base) | float * 1 / 1000) | round(1);
//$conso_base = preg_replace('`^[0]*`','',$conso_base);
$scenario->setLog("conso_base Collectée : " . $Linky);
cmd::byString('#[Maison][Compteur][Linky]#')->event(($conso_base));
Voici mon bout de code où l’erreur doit se trouver vu que c’est à partir de là que je lis ma donnée.
Les 2 lignes commençant par //
sont 2 code PHP que j’ai trouvé pour supprimer ce zéro, mais sans succès.
Est-ce qu’il y a quelqu’un qui peut m’aider à trouver le bon code ?
Je vous remercie par avance.