Drik56
Décembre 6, 2023, 10:41
1
Bonjour,
Je viens d’installer le plugin.
J’ai suivis la doc l’acces au compteur est OK, le fichier Json est OK mais la création des compteurs ne se fait pas.
Voici les logs
0000|[2023-12-06 12:25:03]INFO : Lancement de cron
0001|[2023-12-06 12:25:03]INFO : cron Refresh Info Ecocompteur : New Compteur
0002|[2023-12-06 12:25:03]INFO : refresh_json New Compteur
0003|[2023-12-06 12:25:03]INFO : get_json
0004|[2023-12-06 12:25:03]DEBUG : EcoLegrand url_api http://192.168.1.140/COMPT.json
0005|[2023-12-06 12:25:03]DEBUG : curl_exec response : $http_code 200 response --> { "PAC Appoint kW":0.000000, "PAC Alim kW":2351.000000, "PAC ECS kW":0.000000, "Cuisson kW":0.000000, "General":2532.000000, "Linky Conso":024608424, "Linky I Souscrite":45, "Compteur Eau m³":345.813019, "Total kWh":24607.201172, "PAC Appoint kWh":404.171021, "PAC Alim kWh":12046.072266, "PAC ECS kWh":722.871460, "Prises de Courant kWh":1188.580566, "General kWh":14662.143555 }
0006|[2023-12-06 12:25:03]DEBUG : refresh_json
Merci pour votre aide
Drik56
Décembre 6, 2023, 7:12
2
Info supplémentaires :
Je suis a la dernière version du plugin et en 4.3.20 sur Jeedom
Le fichier Json
{
"PAC_Appoint_W":~LG503 0 3005$,
"PAC_Alim_W":~LG503 1 3005$,
"PAC_ECS_W":~LG503 2 3005$,
"Cuisson_W":~LG503 3 3005$,
"General":~LG503 4 3005$,
"Linky_Conso":~LG526 1 12005$,
"Linky_I_Souscrite":~LG526 11 12005$,
"Compteur_Eau_m3":~LG528 0 12205$,
"Total_kWh":~LG536 0 12724$,
"PAC_Appoint_kWh":~LG536 2 12724$,
"PAC_Alim_kWh":~LG536 4 12724$,
"PAC_ECS_kWh":~LG536 6 12724$,
"Prises_de_Courant_kWh":~LG536 8 12724$,
"General_kWh":~LG536 10 12724$
}
@bernard.dandrea , ai-je raté un truc ?
bonjour
quand tu cliques sur ‹ Créer les compteurs ›, tu n’as pas dans les logs un message ‹ create_counters EcoCompteur Legrand › puis la log des création des commandes infos ?
Bernard
Drik56
Décembre 16, 2023, 7:18
4
Non je n’ais rien.
J’ai beau cliquer plusieurs fois sur créer compteur ça tourne 1sec et c’est tout
Peux-tu m’envoyer une copie écran de l’équipement et des commandes ?
Drik56
Décembre 16, 2023, 3:05
6
Les commandes
Les logs avec le create :
0000|[2023-12-16 16:03:31]INFO : create_counters New Compteur
0001|[2023-12-16 16:03:31]INFO : get_json
0002|[2023-12-16 16:03:31]DEBUG : EcoLegrand url_api http://192.168.1.140/COMPT.JSON
0003|[2023-12-16 16:03:31]DEBUG : curl_exec response : $http_code 200 response --> { "PAC_Appoint_W":0.000000, "PAC_Alim_W":12.000000, "PAC_ECS_W":0.000000, "Cuisson_W":0.000000, "General":180.000000, "Linky_Conso":024775882, "Linky_I_Souscrite":45, "Compteur_Eau_m3":347.407013, "Total_kWh":24774.660156, "PAC_Appoint_kWh":404.277069, "PAC_Alim_kWh":12164.258789, "PAC_ECS_kWh":723.792236, "Prises_de_Courant_kWh":1193.692505, "General_kWh":14802.664063 }
0004|[2023-12-16 16:03:31]DEBUG : create_counters
0005|[2023-12-16 16:04:01]INFO : Lancement de cron
0006|[2023-12-16 16:04:01]INFO : cron Refresh Info Ecocompteur : New Compteur
0007|[2023-12-16 16:04:01]INFO : refresh_json New Compteur
0008|[2023-12-16 16:04:01]INFO : get_json
0009|[2023-12-16 16:04:01]DEBUG : EcoLegrand url_api http://192.168.1.140/COMPT.JSON
0010|[2023-12-16 16:04:01]DEBUG : curl_exec response : $http_code 200 response --> { "PAC_Appoint_W":0.000000, "PAC_Alim_W":12.000000, "PAC_ECS_W":0.000000, "Cuisson_W":0.000000, "General":193.000000, "Linky_Conso":024775883, "Linky_I_Souscrite":45, "Compteur_Eau_m3":347.407013, "Total_kWh":24774.660156, "PAC_Appoint_kWh":404.277069, "PAC_Alim_kWh":12164.258789, "PAC_ECS_kWh":723.792236, "Prises_de_Courant_kWh":1193.692505, "General_kWh":14802.664063 }
0011|[2023-12-16 16:04:01]DEBUG : refresh_json
Mais toujours rien.
Je viens de tester avec votre fichier JSON et cela fonctionne dans mon environnement
je ne comprends pas d’où vient le problème. apparemment, le script PHP bloque sur le décodage du JSON retourné par l’écocompteur
est-ce que par hasard il y aurait des erreurs indiquées dans la log http.error ?
également, quelle est la version du pluggin ?
Drik56
Décembre 16, 2023, 7:42
9
Je n’ai rien dans les logs http error.
Je suis a jour du plugin.
Souhaitez vous un accès distant ?
Je ne sais pas debugger jeedom en live aussi un accès distant ne me sera pas utile
log::add('EcoLegrand', 'debug', __('create_counters', __FILE__) . ' $obj_detail --> ' . $obj_detail);
Pourrais tu insérer la ligne de code ci-dessus dans le fichier html/plugins/EcoLegrand/core/EcoLegrand.class.php (ligne 116)
Apparemment, le problème vient du décodage du fichier Json. Je voudrais être sur qu’il est bien retourné après l’appel de get_json.
Pourras-tu me renvoyer le résultat du log après la tentative de création des compteurs
Drik56
Décembre 17, 2023, 10:24
11
0000|[2023-12-17 11:23:39]INFO : create_counters EcoCompteur
0001|[2023-12-17 11:23:39]INFO : get_json
0002|[2023-12-17 11:23:39]DEBUG : EcoLegrand url_api http://192.168.1.140/COMPT.JSON
0003|[2023-12-17 11:23:39]DEBUG : curl_exec response : $http_code 200 response --> { "PAC_Appoint_W":0.000000, "PAC_Alim_W":1588.000000, "PAC_ECS_W":0.000000, "Cuisson_W":0.000000, "General":1791.000000, "Linky_Conso":024795944, "Linky_I_Souscrite":45, "Compteur_Eau_m3":347.616028, "Total_kWh":24794.720703, "PAC_Appoint_kWh":404.284210, "PAC_Alim_kWh":12167.936523, "PAC_ECS_kWh":724.302063, "Prises_de_Courant_kWh":1193.979980, "General_kWh":14810.327148 }
0004|[2023-12-17 11:23:39]DEBUG : create_counters $obj_detail --> { "PAC_Appoint_W":0.000000, "PAC_Alim_W":1588.000000, "PAC_ECS_W":0.000000, "Cuisson_W":0.000000, "General":1791.000000, "Linky_Conso":024795944, "Linky_I_Souscrite":45, "Compteur_Eau_m3":347.616028, "Total_kWh":24794.720703, "PAC_Appoint_kWh":404.284210, "PAC_Alim_kWh":12167.936523, "PAC_ECS_kWh":724.302063, "Prises_de_Courant_kWh":1193.979980, "General_kWh":14810.327148 }
0005|[2023-12-17 11:23:39]DEBUG : create_counters
Voici les logs,
Merci pour ton aide
Apparemment, la conversion du json se passe mal
il semble que la routine de conversion n’apprécie pas le 0 dans « Linky_Conso »:024795944.
en supprimant le 0, ça passe
pourrais-tu vérifier en supprimant le champ Linky_Conso dans l’extraction
par contre, il faut que je cherche un peu pour voir comment traiter le problème de façon générale
Peux-tu aussi essayer en décrivant le champ comme ceci
« Linky_Conso »:« ~LG526 1 12005$ »,
(Mettre des quotes)
jpty
Décembre 17, 2023, 5:30
14
C’est du json sauce Legrand 2015.
Il faut supprimer les 0 en début des valeurs avant le json_decode.
C’est ces valeurs qu’il n’aime pas:
[image]
La correction est d’ajouter une ligne $corrected = preg_replace('/\:000000000,/', ': 0,', $corrected);
et un message de warning pour signaler qu’il y a une erreur de décodage du json
La fonction corrigée et masquée: public function getData() {
$devAddr = 'http://' . $this->getConfiguration('addr', '') . '/data.json';
$request_http = new com_http($devAddr);
$devResult = $request_http->exec(30);
l…
Un nombre qui commence par un 0 est en octal.
Peux-tu tester avec les quotes, je pense que cela doit fonctionner également
Drik56
Décembre 17, 2023, 6:48
16
Merci avec les « » ça fonctionne.
Par contre j’ai des erreurs :
SyntaxError: '' string literal contains an unescaped line break
l’erreur est dans la log ?
Drik56
Décembre 18, 2023, 8:28
18
Non directement dans Jeedom
Le triangle en haut a droite