Aide pour création scénario de récupération de données

Si tu parles des expires, c’est rien. C’est juste curl sous debian qui fait ça. C’est normal.
Je t’ai envoyé en MP un code qui permettra de remonter plus d’infos normalement et comprendre le souci, I Hope :crossed_fingers:

yess, avec le nouveau code je récupère les info dans les logs du scénario

------------------------------------
[2022-06-08 21:39:02][SCENARIO] -- Start : Scenario execute automatiquement sur programmation.
[2022-06-08 21:39:02][SCENARIO] - Exécution du sous-élément de type [action] : code
[2022-06-08 21:39:02][SCENARIO] Exécution d'un bloc code 
[2022-06-08 21:39:02][SCENARIO] HTTP Response : 200
[2022-06-08 21:39:02][SCENARIO] DATA : '{
"Body" : {
"Data" : {
"Inverters" : {
"1" : {
"DT" : 102,
"E_Day" : 28129,
"E_Total" : 2693779.75,
"E_Year" : 2693781.75,
"P" : 0
}
},
"Site" : {
"E_Day" : 28129,
"E_Total" : 2693779.75,
"E_Year" : 2693781.75,
"Meter_Location" : "unknown",
"Mode" : "vague-meter",
"P_Akku" : null,
"P_Grid" : null,
"P_Load" : null,
"P_PV" : null,
"rel_Autonomy" : null,
"rel_SelfConsumption" : null
},
"Version" : "12"
}
},
"Head" : {
"RequestArguments" : {},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2022-06-08T21:40:01+02:00"
}
}
'
[2022-06-08 21:39:02][SCENARIO] Parsed JSON : (object) array(
'Body' =>
(object) array(
'Data' =>
(object) array(
'Inverters' =>
(object) array(
'1' =>
(object) array(
'DT' => 102,
'E_Day' => 28129,
'E_Total' => 2693779.75,
'E_Year' => 2693781.75,
'P' => 0,
),
),
'Site' =>
(object) array(
'E_Day' => 28129,
'E_Total' => 2693779.75,
'E_Year' => 2693781.75,
'Meter_Location' => 'unknown',
'Mode' => 'vague-meter',
'P_Akku' => NULL,
'P_Grid' => NULL,
'P_Load' => NULL,
'P_PV' => NULL,
'rel_Autonomy' => NULL,
'rel_SelfConsumption' => NULL,
),
'Version' => '12',
),
),
'Head' =>
(object) array(
'RequestArguments' =>
(object) array(
),
'Status' =>
(object) array(
'Code' => 0,
'Reason' => '',
'UserMessage' => '',
),
'Timestamp' => '2022-06-08T21:40:01+02:00',
),
)
[2022-06-08 21:39:02][SCENARIO] Puissance Collectée : 0
[2022-06-08 21:39:02][SCENARIO] P_PV Collectée :
[2022-06-08 21:39:02][SCENARIO] Fin correcte du scénario

J’utilise jamais file_get_contents donc je sais pas dire pourquoi ça marchait ps sur ton Jeedom mais comme ça marchait sur le miens, ça vient de ton php à priori.

Mais si ça marche bien avec le curl_exec que je t’ai donné c’est cool et même si c’est plus de ligne de code, je trouve que c’est mieux

merci beaucoup
Maintenant, il faut que je trouve pourquoi le scénario n’envoi pas les valeurs à mon virtuel

Edit, le scénario collecte les valeurs ci-après
image
Pour la puissance et le P_PV c’est normal vu qu’il n’y a plus de soleil, la valeur de ‹ E_Day › est bien récupéré, mais elle n’apparait pas dans mon virtuel

Edit 2 : j’ai trouvé, les commandes d’écriture dans le virtuel était sous format texte d’info avec un double flash devant.

Encore merci pour l’aide apporté

voici le code solutionnant mon problème
encore merci à @mguyard pour les modifications apportées à celui-ci

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://MONIP/solar_api/v1/GetPowerFlowRealtimeData.fcgi");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT,        15);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 15);
$data = curl_exec($curl);
$httpRespCode  = curl_getinfo($curl, CURLINFO_HTTP_CODE);

$scenario->setLog("HTTP Response : " . $httpRespCode);
if ($httpRespCode == 0) {
  $scenario->setLog("HTTP Error : " . curl_error($curl));
}

$scenario->setLog("DATA : " . var_export($data, true));
$parsed_json = json_decode($data);
$scenario->setLog("Parsed JSON : " . var_export($parsed_json, true));

$P = $parsed_json->{'Body'}->{'Data'}->{'Inverters'}->{'1'}->{'P'};
$scenario->setLog("Puissance Collectée : " . $P);
cmd::byString('#[Maison][Fronius][Puissance]#')->event(($P));

$P_PV = $parsed_json->{'Body'}->{'Data'}->{'Site'}->{'P_PV'};
$scenario->setLog("P_PV Collectée : " . $P_PV);
cmd::byString('#[Maison][Fronius][P_PV]#')->event(($P_PV));

$E_Day = $parsed_json->{'Body'}->{'Data'}->{'Inverters'}->{'1'}->{'E_Day'};
$scenario->setLog("E_Day Collectée : " . $E_Day);
cmd::byString('#[Maison][Fronius][E_Day]#')->event(($E_Day));

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