Insérer consommation avant utilisation plugin

Bonjour à tous,

je viens vers vous pour une question simple, il me semble avoir vu la réponse mais j’ai des doutes. Je suis installé depuis mi-juin, et j’utilise le plugin suiviconso depuis quelques jours. Est-il possible d’insérer la consommation qui a eu lieu avant via le correcteur ou autre?

sinon j’utilise un ecoRT2 et cela fonctionne parfaitement.

merci pour vos réponses

Il n’y a pas de fonction dédiée pour cela, mais cela a déjà été réalisé à partir d’un fichier .csv . j’ai un script pour l’Ecodevice 1. Il sera certainement possible de l’adapter si tu as les données qu’il faut.
Si besoin je pourrais t’aider. Voici le script à renommer en enlevant le .txt.
ecodevice-to-jeedom-suivi-conso.php.txt (2,4 Ko)

Bonjour,

merci pour ta dextérité!!! :grin:

je vais regarder cela et je ferai appel à toi si je galére!

En tout cas merci encore.

Bonjour @superbricolo ,
J’ai tenté d’importer mon historique ecodevice1 et j’obtiens le message d’erreur suivant:
image
J’ai beau regarder le script, je n’arrive pas à détecter où est le pb. Avez vous une idée? Merci

Tu peux m’envoyer le fichier csv que tu veux intégrer, parce que comme cela, je ne sais pas dire ce qui ne va pas.

PS: En fait probablement entre 2 jours, le nouvelle index est inférieur à l’index de la veille. Mais c’est bizarre, le log donne les mêmes valeurs

Merci de ta réponse. Je ne peux pas transférer le .csv ici… Comment veux tu que je l’envoie?

Si, tu peux le mettre ici. Tu ajoutes l’extention .txt à ton fichier avant de le transférer

et voici. Merci

xdata.csv.txt (326,4 Ko)

Le problème est manifestement parce que tu as le même index HCHP pendant 2 jours de suite. Mais normalement cela ne devrait pas poser de problème avec le script tel qu’il est:

    $idx_max_hp = $line[4];
	$previous_idx_max_hp = $csv[$i - 1][4];
	if ($idx_max_hp < $previous_idx_max_hp) {
		file_put_contents('php://stderr', "Ligne " . ($i+1) . " ignorée car index invalides (idx_max_hp = $idx_max_hp, previous_idx_max_hp = $previous_idx_max_hp)\n", FILE_APPEND);
		continue;
	}

Tu n’as pas modifié les conditions du scripts?

PS: Si tu n’as rien touché, enlève la condition dans le script et relance comme cela. Tu n’auras plus d’erreur.


Est ce que j’ai bien compris et bien recodé? Résultat:
image

Je n’ai pas touché au script original. Se peut il que j’ai téléchargé une versionmodifiée?
Si tu as la version ok, peux tu me l’envoyer?
merci

Mon script n’est pas différent. Je ne comprend pas pourquoi la condition se déclenche sur une égalité.
Sinon ta modif est bonne pour moi. Tu peux y aller comme cela

toujours une erreur, quelque soit le fichier xdata-xxx
image

Semblerait que les valeurs ne matchent pas les colonnes? Ou est défini $id_equ? n’est ce pas cette valeur qui manque?

A priori, le nombre de champs inséré dans la table ne correspond pas à la table.
Tu peux peut-être changer le

}
*/$id_eq = 0;

par

}*/
$id_eq = 0;

On se croise…
même erreur après cette modif.
Idem lorsque je supprime la colonne $id_eq.


J’ai rajouté les colonnes temp et dju et donné leur valeur à 0. Ca marche ainsi, quoique une erreur 1064 (??). mais je vois mes années maintenant dans la table conso_jour.
Merci de m’avoir épauler .
Bonne nuit

Bon, si les données sont bien transférées dans la table sql conso_jour, des que je passe sur suivi conso, ces données disparaissent de la table.
Par ailleurs, id_eq semble être l’id d’un equipement défini dans le plugin conso.
J’en ai 4 , soit T1 et T2 du compteur et C1 et C2 sur l’ecodevice.
La conversion du php ecodevice to jeedom ne se référe qu’àT1, la conso totale. Je vais devoir recréer des xdata pour chacun de mes T2,C1,C2 et réappliquer le php en donnant le id_eq correspondant à chacun d’entre eux. Ce sera pour plus tard, là …dodo. Merci encore @superbricolo

Oui id_eq doit correspondre à l’équipement suivi conso que tu dois mettre à jour. Je pensais que tu avais mis 0 pour effectuer des tests.

Sinon pour faire, T2 il suffit de changer les colonnes du script 4 et 5 par 19 et 20

$date = new DateTime($rec_date, new DateTimeZone('Europe/Paris'));
	$periode = $date->format('D j y');
	$idx_max_hp = $line[19];
	$previous_idx_max_hp = $csv[$i - 1][19];
	if ($idx_max_hp < $previous_idx_max_hp) {
		file_put_contents('php://stderr', "Ligne " . ($i+1) . " ignorée car index invalides (idx_max_hp = $idx_max_hp, previous_idx_max_hp = $previous_idx_max_hp)\n", FILE_APPEND);
		continue;
	}
	$idx_min_hp = $previous_idx_max_hp;
	$idx_max_hc = $line[20];
	$previous_idx_max_hc = $csv[$i - 1][20];
	$idx_min_hc = $previous_idx_max_hc;
	if ($idx_max_hc < $previous_idx_max_hc) {
		file_put_contents('php://stderr', "Ligne " . ($i+1) . " ignorée car index invalides (idx_max_hc = $idx_max_hc, previous_idx_max_hc = $previous_idx_max_hc)\n", FILE_APPEND);
		continue;
	}

Sinon je te joint le script que j’avais fait pour l’eau

ecodevice-to-jeedom-suivi-conso-eau.php.txt (2,4 Ko)