EgMaf
Décembre 26, 2021, 5:11
1
Bonsoir. Après avoir basculé sur EDF-Tempo (Bleu-Blanc-Rouge) j’aimerais que JeeDom sache de quelle couleur du jour il est, pour pouvoir régler le chauffage etc.
Je souhaite utiliser mon LeGrand Ecocompteur, car il a déjà les infos de mon Linky via Teleinfo:
.
Les données d’instant et de consommation sont visibles dans mon plugin LeGrandEco, mais au bout de 2 jours toujours rien pour les données Teleinfo :
Et c’est dans le fichier journal :
[2021-12-26 18:02:43][DEBUG] : getInformations http://192.168.1.119/inst.json
[2021-12-26 18:02:43][DEBUG] : Array ( [data1] => 0 [data2] => 10 [data3] => 425 [data4] => 61 [data5] => 105 [data6] => 0 [data6m3] => 0 [data7] => 0 [data7m3] => 0 [heure] => 18 [minute] => 2 [CIR1_Nrj] => 0 [CIR1_Vol] => 0 [CIR2_Nrj] => 0 [CIR2_Vol] => 0 [CIR3_Nrj] => 0 [CIR3_Vol] => 0 [CIR4_Nrj] => 0 [CIR4_Vol] => 0 [Date_Time] => 1640541762 )
[2021-12-26 18:02:43][DEBUG] : getInformations http://192.168.1.119/data.json
[2021-12-26 18:03:03][INFO] : getConso http://192.168.1.119/LOG2.CSV
[2021-12-26 18:03:03][DEBUG] : getInformations http://192.168.1.119/inst.json
[2021-12-26 18:03:03][DEBUG] : Array ( [data1] => 0 [data2] => 8 [data3] => 425 [data4] => 59 [data5] => 106 [data6] => 0 [data6m3] => 0 [data7] => 0 [data7m3] => 0 [heure] => 18 [minute] => 3 [CIR1_Nrj] => 0 [CIR1_Vol] => 0 [CIR2_Nrj] => 0 [CIR2_Vol] => 0 [CIR3_Nrj] => 0 [CIR3_Vol] => 0 [CIR4_Nrj] => 0 [CIR4_Vol] => 0 [Date_Time] => 1640541782 )
[2021-12-26 18:03:03][DEBUG] : getInformations http://192.168.1.119/data.json
[2021-12-26 18:04:03][DEBUG] : getInformations http://192.168.1.119/inst.json
[2021-12-26 18:04:03][DEBUG] : Array ( [data1] => 5 [data2] => 6 [data3] => 411 [data4] => 60 [data5] => 105 [data6] => 0 [data6m3] => 0 [data7] => 0 [data7m3] => 0 [heure] => 18 [minute] => 4 [CIR1_Nrj] => 0 [CIR1_Vol] => 0 [CIR2_Nrj] => 0 [CIR2_Vol] => 0 [CIR3_Nrj] => 0 [CIR3_Vol] => 0 [CIR4_Nrj] => 0 [CIR4_Vol] => 0 [Date_Time] => 1640541841 )
[2021-12-26 18:04:03][DEBUG] : getInformations http://192.168.1.119/data.json
Quelqu’un a-t-il une idée de ce que je fais mal?
J’ai essayé de changer cron en 5**** et 20**** mais aucune amélioration. J’ai aussi supprimé et réinstallé le matériel, et même le plugin (j’ai même essayé la version beta).
Ou est-ce que quelqu’un a un autre moyen fiable de dire à JeeDom la couleur du jour ?
J’ai essayé les plugins DomoGeek et Eco 2 Watt, mais ils ne sont plus supportés et ne fonctionnent pas (pour EDF-Tempo) non plus.
Au secours…?
jpty
Décembre 26, 2021, 5:48
2
Bonjour @EgMaf ,
Pourriez-vous SVP poster le résultat de http://192.168.1.119/data.json
?
URL à copier/coller dans un navigateur.
C’est avec ces données que sont créées les commandes de type teleinfo.
EgMaf
Décembre 26, 2021, 8:24
3
{
"option_tarifaire" : 2,
"tarif_courant" : 8,
"isousc" : 60,
"conso_base" : 0,
"conso_hc" : 0,
"conso_hp" : 0,
"conso_hc_b" : 002677727,
"conso_hp_b" : 006791609,
"conso_hc_w" : 000000000,
"conso_hp_w" : 000000000,
"conso_hc_r" : 000000000,
"conso_hp_r" : 000000000,
"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" : "Heating downstairs ",
"label_entree2" : "Heating upstairs ",
"label_entree3" : "Plugs Lights Server ",
"label_entree4" : "Appliances Hot water",
"label_entree5" : "Garages and outside ",
"label_entree_imp0" : "Gas",
"label_entree_imp1" : "Water",
"label_entree_imp2" : "Water",
"label_entree_imp3" : "Water",
"label_entree_imp4" : "Water",
"label_entree_imp5" : "Water",
"entree_imp0_disabled" : 1,
"entree_imp1_disabled" : 1,
"entree_imp2_disabled" : 1,
"entree_imp3_disabled" : 1,
"entree_imp4_disabled" : 1,
"entree_imp5_disabled" : 1
}
Merci!
jpty
Décembre 26, 2021, 11:05
4
Je reproduis votre problème. ( Erreur de syntaxe lors du décodage du json )
Le json produit par Legrand n’est pas propre. Il subit déjà des corrections pour être utilisable. Je regarde ce qu’il faut encore corriger.
Quelle est la version du firmware de votre ecocompteur ?
En bas à droite de sa page d’accueil:
jpty
Décembre 26, 2021, 11:47
5
C’est ces valeurs qu’il n’aime pas:
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);
log::add('legrandeco', 'debug', 'getInformations ' . $devAddr);
if ($devResult === false) {
log::add('legrandeco', 'info', 'problème de connexion ' . $devAddr);
} else {
$devResbis = utf8_encode($devResult);
$corrected = preg_replace('/\s+/', '', $devResbis);
$corrected = preg_replace('/\:000000000,/', ': 0,', $corrected);
$corrected = preg_replace('/\:0,/', ': 0,', $corrected);
$corrected = preg_replace('/\:[0]+/', ":", $corrected);
$devList = json_decode($corrected, true);
log::add(__CLASS__, 'debug', print_r($devList, true));
if (json_last_error() == JSON_ERROR_NONE) {
foreach($devList as $name => $value) {
if (strpos($name,'type_imp') !== false || strpos($name,'label_entree') !== false || strpos($name,'entree_imp') !== false) {
// pas de traitement sur ces données
} else {
$this->checkCmdOk('teleinfo', $name, '<i class="fas fa-flash"></i>');
$this->checkAndUpdateCmd($name, $value);
}
}
}
else {
log::add(__CLASS__, 'warning', __FUNCTION__ .' Json_decode error: ' .json_last_error_msg());
}
}
$this->refreshWidget();
}
EgMaf
Décembre 27, 2021, 8:54
6
C’était rapide! Merci!
Je suis un idiot complet quand il s’agit de changer de code dans mon JeeDom. Y a-t-il des instructions que je peux suivre pour le faire, ou dois-je attendre que le plugin soit mis à jour ?
jpty
Décembre 27, 2021, 8:56
7
Bonjour,
Vous n’avez pas répondu à cette question.
J’attends votre réponse avant de faire une demande de correction au dev du plugin.
Bison
Décembre 27, 2021, 9:02
8
Salut,
Je ne sais plus bien si c’était pile le même soucis mais je pense qu’on est pas loin.
J’avais aussi corrigé un truc et demandé au dev de le vérifier pour adapter. Je n’ai jamais eu de news, tu auras peut-être plus de chance.
Bon ben même après avoir remis le TI.OBI comme d’origine ça ne fonctionne toujours pas.
Le contenu du data.json :
{
"option_tarifaire" : 2,
"tarif_courant" : 8,
"isousc" : 45,
"conso_base" : 0,
"conso_hc" : 0,
"conso_hp" : 0,
"conso_hc_b" : 000043160,
"conso_hp_b" : 000083202,
"conso_hc_w" : 000000000,
"conso_hp_w" : 000000000,
"conso_hc_r" : 000000000,
"conso_hp_r" : 000000000,
"type_imp_0" : 0,
"type_imp_1" : 1,
"type_imp_2" : 1,
"type_imp_3" : 1,
"type_imp_4" : 1,
…
1 « J'aime »
jpty
Décembre 27, 2021, 9:09
9
Bonjour,
Oui, c’est le même problème avec une correction un peu différente. Un json de m…e généré par Legrand.
Je voudrais savoir si c’est lié à la version du firmware de l’eco.
Bison
Décembre 27, 2021, 9:21
10
Ok .
De mon côté la dernière V3.0.17
1 « J'aime »
EgMaf
Décembre 27, 2021, 5:35
11
Le mien c’est sur 3.0.15, pas 3.0.17.
Malheureusement je ne peut pas faire un mise à jour avant lundi prochaine.
jpty
Décembre 27, 2021, 5:56
12
Pas de souci. La maj en 3.0.17 n’est pas nécessaire.
Le comportement est le même en 3.0.15 qu’en 3.0.17.
Avec le correctif, ça devrait passer.
jpty
Décembre 28, 2021, 8:59
13
La modif (proposée dans mon post au dessus) de la lecture de data.json a été intégrée dans le plugin en beta.
La stable suit.
Il faut sauver l’équipement pour que les commandes oubliées se créent dans l’onglet Teleinfo.
system
A fermé ce sujet ()
Décembre 29, 2021, 11:36
14
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.