Jeedom ne voit pas de Teleinfo de EcoCompteur

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…?

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.


{
	"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!

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:
image

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);
    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();
  }

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 ?

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.

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.

1 « J'aime »

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.

Ok :slightly_smiling_face:.

De mon côté la dernière V3.0.17

1 « J'aime »

Le mien c’est sur 3.0.15, pas 3.0.17.

Malheureusement je ne peut pas faire un mise à jour avant lundi prochaine.

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.

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.

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