Bonjour,
Nouvelle sur Jeedom cela plusieurs jours que je me creuse la tête pour récupérer les informations de mon onduleur PV connecté à Solarman en json.
Voici un exemple de donné que je souhaiterais récupérer :
L’objectif est serait de créer un équipement « virtuelle » pour afficher toutes les données et bien sûr pouvoir utiliser certaine donnée dans des scénarios.
J’ai donc installé le plugin Script :
Voici le script php que j’ai construit avec les informations trouvées sur le groupe :
<?php
$json = system("curl -X 'POST' \
'https://api.solarmanpv.com/device/v1.0/currentData?appId=2023*****=' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: bearer ****' \
-d '{\"deviceSn\": \"S****\"}'");
$json = preg_replace("#(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|([\s\t]//.*)|(^//.*)#", '', $json);
if (!empty($json))
{
$findme = 'dataList';
$pos = strpos($json, $findme);
if ($pos === false)
{
$scenario->setLog('Erreur de retour de la fonction CURL, la fonction renvoi : ' .$json);
}
else
{
$obj = json_decode($json, TRUE);
$b = 'solarman_'; // Préfixe nom de variable
if (json_last_error() === JSON_ERROR_NONE)
{
$Infos_value = $obj['dataList'][0]['value'];
$scenario->setLog('Variable '.$b.'value = '. $Infos_value);
//$scenario->setData($b . 'type', $Infos_type);
$Infos_name = $obj['dataList'][0]['name'];
$scenario->setLog('Variable '.$b.'name = ' . $Infos_name);
//$scenario->setData($b . 'id', $Infos_id);
$Infos_unit = $obj['dataList'][0]['unit'];
$scenario->setLog('Variable ' . $b . 'unit = ' . $Infos_name);
//$scenario->setData($b . 'id', $Infos_id);
}
}
}
else
{
$scenario->setLog('Erreur json est : ' . $json_errors[json_last_error()]);
}
?>
Avec ce code j’ai l’erreur suivante que je n’arrive pas à solutionner :
[2023-05-13 19:51:27][DEBUG] : Execution de : php /var/www/html/plugins/script/data/datatest.php 2>&1
[2023-05-13 19:51:27][ERROR] : Erreur exécution de la commande [Maison][TestSolarman][SolarmanPV] : Erreur sur php /var/www/html/plugins/script/data/datatest.php 2>&1 valeur retournée : 255. Détails : % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 4569 0 4539 100 30 7893 52 --:--:-- --:--:-- --:--:-- 7946 {"code":null,"msg":null,"success":true,"requestId":"0ec66c0661bcd1cc","deviceSn":"S****","deviceId":224389092,"deviceType":"INVERTER","deviceState":1,"collectionTime":1684000162,"dataList":[{"key":"SN1","value":"S****","unit":null,"name":"SN"},{"key":"SS_CY1","value":"11","unit":null,"name":"Production Compliance Country" etc....}}]}PHP Notice: Undefined variable: scenario in /var/www/html/plugins/script/data/datatest.php on line 28 PHP Fatal error: Uncaught Error: Call to a member function setLog() on null in /var/www/html/plugins/script/data/datatest.php:28 Stack trace: #0 {main} thrown in /var/www/html/plugins/script/data/datatest.php on line 28
Si vous avez une idée !
Merci pour votre aide