Graphiques en PHP pour Eco-Device

Bonjour à tous,

Heureux possesseur d’un module Eco-Device, j’ai écrit ou adapté différents bouts de code pour bénéficier de graphiques un peu plus détaillés que ceux fournis dans la partie statistiques du serveur web embarqué dans l’Eco-Device.
Je mets à disposition sur mon petit site web perso le code et des explications plus précises : http://www.eb-home.eu/blog/graphiques-pour-eco-device
Il y a en gros :

Pour l’instant, les graphiques affichent les données du premier compteur teleinfo uniquement, mais dès que j’ai un peu de temps je ferai le nécessaire pour exploiter les données de mon second compteur teleinfo (PAC et ECS) et de mon compteur d’eau. (Ces données sont par contre déjà stockées en base de données).

Voici un aperçu des graphiques :

Si cela peut être utile à certains parmi vous, n’hésitez pas à jeter un oeil et à me faire part de vos commentaires et remarques.

1 « J'aime »

Merci beaucoup pour ce partage. Je ne manquerai pas d’y faire référence sur mon blog.

Bonjour,

merci bien pour ton partage ,
c’est tout a fait ce que je cherche a faire avec l’eco-device
ça fait un peu plus d’un an que j’utilise les graph que A.Penhard a mis a disposition avec le programme que j’ai compilé pour tourner sur ma neufbox afin de renseigner ma base sql distante de mon qnap.
et maintenant je voudrais que mon Eco-Device prenne le relais.
je vais donc suivre ton site de très prés .

Merci

@++

Bonsoir et merci pour vos messages sympathiques.

Comme prévu, j’ai ajouté une page de graphiques pour prendre en charge le second compteur Teleinfo reliable à l’Eco-Device et une autre page reprenant l’historique d’une consommation d’eau par exemple. (Il s’agit chez moi de l’entrée n°2 pour compteur à impulsion).

Voici ce que cela donne pour la conso d’Eau :

J’ai créé une version 2 du package « teleinfo-ed » reprenant tous les scripts.
C’est toujours disponible sur mon site perso : http://www.eb-home.eu/blog/graphiques-pour-eco-device-part4

Cordialement,
Zebk

Bonjour,

J’ai mis à jour le package de graphiques en PHP (avec Highcharts) pour l’Eco-Device http://www.eb-home.eu/blog/graphiques-pour-eco-device-part5

En effet, le package précédent fonctionnait sans problème avec un abonnement HC/HP. Par contre, il y avait pas mal d’erreurs avec un abonnement EDF « BASE », qui sont normalement corrigées (avec l’aide de quelques uns parmi vous).

Si d’autres personnes possédant un abonnement BASE souhaitent tester cette nouvelle version, n’hésitez pas !

Merci
Zebk

1 « J'aime »

bonjour
super ton appli
mais, mes connaissances étant limitées peux-tu me renseigner :
command utiliser le fichier ‹ domotique.sql › avec phpmyadmin ?, en fait quelle cde utiliser ?
merci

Merci pour le partage, c’est exactement ce que je cherchais…Par contre j’ai un probleme lors de la mise en oeuvre…je n’arrive pas a recuperer toutes les données…

j’ai pourtant la derniere version (firm) de l’eco device.

En Json j’ai :
INSERT INTO teleinfov3 SET timestp = 1379482254, rec_date=20130918, rec_time=073054, T1_PTEC=‹ HP ›, T1_PAPP=920, T1_HCHP=, T1_HCHC=, T1_BASE=0, T2_PTEC=‹ – ›, T2_PAPP=0, T2_HCHP=, T2_HCHC=, T2_BASE=0, INDEX_C1=0, CUMUL_C1=0, INST_C1=0, INDEX_C2=0, CUMUL_C2=0, INST_C2=

et en xml je recupere…

timestp = 1379482550, rec_date=20130918, rec_time=073550, T1_PTEC=‹ HP ›, T1_PAPP=1130, T1_HCHP=0, T1_HCHC=0, T1_BASE=0, T2_PTEC=‹ – ›, T2_PAPP=0, T2_HCHP=0, T2_HCHC=0, T2_BASE=0, INDEX_C1=0, CUMUL_C1=0, INST_C1=0, INDEX_C2=0, CUMUL_C2=0, INST_C2=0

mais il ne construit pas de graphe…

bonjour
j’ai installé tout le système et voici l’erreur que je constate

y a t-il une solution ?
merci

L’erreur se situe en ligne 148
Si un pro du php pouvait m’expliquer la cause de ce msg d’erreur…
merci de votre aide

Bonsoir et désolé pour les réponses tardives.

@rol50, d’après les copies d’écran, il y a un problème de lecture du flux json sur votre eco-device.
Tant que la variable T1_PTEC ne se voit affecter aucune valeur, c’est qu’il y a un problème de lecture de ce flux depuis l’eco-device (pb d’url, de config réseau ou firewall ou de login/mdp si l’eco-device est sécurisé)
Dans un premier temps, il faut valider que l’url http://ip-de-votre-eco-dev/api/xdevices.json?cmd=10 renvoie bien des valeurs correctes (dont quelque chose pour la variable T1_PTEC, ou T2_PTEC si c’est l’entrée teleinfo 2 qui est utilisée).
Pour la création de votre base mysql, je vous recommande de créer manuellement via phpMyAdmin, une base, puis une table, puis un utilisateur avec les privilèges corrects. Vous trouverez quelques précisions dans ce petit tutoriel : http://www.eb-home.eu/blog/graphiques-pour-eco-device-tutorial

@N|co, le problème est différent, le flux json de l’eco-device semble bien accessible. J’ai publié ce Week-End une version corrigée des graphiques php/high-charts pour l’eco-device, qui doit corriger pas mal de bugs.
La dernière version ainsi que le tutoriel se trouve aussi ici : http://www.eb-home.eu/blog/graphiques-pour-eco-device-tutorial

Bon graphiques !

Bonjour,
Actuellement la puissance instantanée est affichée à partir de la table sql. L’ensemble fonctionne très bien mais avec un intervalle de 5min pour ma part entre chaque relevé. Je voudrais afficher et non stocker sur une jauge à part la puissance instantanée avec un rafraichissement toutes les 5s.

Comment faire pour récupérer la valeur T1_PAPP et l’afficher sur la gauge avec un rafraichissement de 5s?

Merci
Voici le script de la gauge

var start = new Date();

var chart_gauge;

$(document).ready(function() {
  
    $.getJSON('json.php?query=gauge', function(data) {
	init_gauge(data);
  });
      
  function init_gauge(data){
  
  
		var chart = new Highcharts.Chart({	
	    chart: {
	        renderTo: 'gauge',
	        type: 'gauge',
	        plotBackgroundColor: null,
	        plotBackgroundImage: null,
	        plotBorderWidth: 0,
	        plotShadow: false
	    },
	    
	    title: {
	        text: 'Puissance instantanée'
	    },
	    
	    pane: {
	        startAngle: -150,
	        endAngle: 150,
	        background: [{
	            backgroundColor: {
	                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
	                stops: [
	                    [0, '#FFF'],
	                    [1, '#333']
	                ]
	            },
	            borderWidth: 0,
	            outerRadius: '109%'
	        }, {
	            backgroundColor: {
	                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
	                stops: [
	                    [0, '#333'],
	                    [1, '#FFF']
	                ]
	            },
	            borderWidth: 0,
	            outerRadius: '107%'
	        }, {
	            // default background
	        }, {
	            backgroundColor: '#DDD',
	            borderWidth: 0,
	            outerRadius: '105%',
	            innerRadius: '103%'
	        }]
	    },
	       
	    // the value axis
	    yAxis: {
	        min: 0,
	        max: 9000,	        
	        minorTickInterval: 'auto',
	        minorTickWidth: 1,
	        minorTickLength: 10,
	        minorTickPosition: 'inside',
	        minorTickColor: '#666',	
	        tickPixelInterval: 50,
	        tickWidth: 2,
	        tickPosition: 'inside',
	        tickLength: 15,
	        tickColor: '#666',
	        labels: {
	            step: 2,
	            rotation: 'auto'
	        },
	        title: {
	            text: 'Watt'
	        },
	        plotBands: [{
	            from: 0,
	            to: 1000,
	            color: '#55BF3B' // green
	        }, {
	            from: 1000,
	            to: 5000,
	            color: '#DDDF0D' // yellow
	        }, {
	            from: 5000,
	            to: 9000,
	            color: '#DF5353' // red
	        }]        
	    },
	
	    series: [{
	        name: 'Puissance',
	        data: [data.gauge_watt],
	        tooltip: {
	            valueSuffix: 'Watt'
	        }
	    }]
	
	}, 
	// Add some life
	function (chart) {		
	
	    setInterval(function () {		
			refresh_gauge(chart);	        
	    }, 5000);/*Mise a jour toutes les 5s*/
	});
  }
   
});
1 « J'aime »

Bonjour,
j’essaye d’installer, mais j’ai cette erreur je ne trouve pas d’où ca vient:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u666879188/public_html/ecod2sql.php on line 129 Erreur dans la requète CREATE TABLE IF NOT EXISTS teleinfov3 ( timestp int(11) NOT NULL, rec_date date NOT NULL, rec_time time NOT NULL, T1_PTEC char(5) NOT NULL, T1_PAPP decimal(10,3) NOT NULL, T1_HCHP decimal(12,3) NOT NULL, T1_HCHC decimal(12,3) NOT NULL, T1_BASE decimal(12,3) NOT NULL, T2_PTEC char(5) NOT NULL, T2_PAPP decimal(10,3) NOT NULL, T2_HCHP decimal(12,3) NOT NULL, T2_HCHC decimal(12,3) NOT NULL, T2_BASE decimal(12,3) NOT NULL, INDEX_C1 decimal(10,3) NOT NULL, CUMUL_C1 decimal(10,3) NOT NULL, INST_C1 decimal(10,3) NOT NULL, INDEX_C2 decimal(10,3) NOT NULL, CUMUL_C2 decimal(10,3) NOT NULL, INST_C2 decimal(10,3) NOT NULL, TEMP_INT decimal(2,2) NOT NULL, TEMP_EXT decimal(2,2) NOT NULL, INDEX_UV int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; :

Bonsoir,

J’ai essayé la requête directement dans mysql… et il n’y a pas d’erreur en terminant la requête par « ; » !
Est-ce normal qu’à la fin du message il y ait un « : » ?

Bonjour,
J’ai installé les scripts/base et ca marche super !!
Question: j’ai le compteur C1 qui suit la consommation de gaz et je pense que teleinfo-edC11 et teleinfo-edC12 ne suive que l’eau . Que faut il changer pour avoir un suivi Gaz ?

pour chris0607
slt
il me semble avoir eu ce genre d’erreur il y a qq temps avec mon rasberry
mais depuis ça marche
il me semble que c’est au niveau des pwd d’acces a la bdd

bonjour
je viens de découvrir une nouvelle appli graphique pour le raspberry : gnuplot, qui pourrait éventuellement afficher les graphes de conso.
pb : je n’arrive pas à afficher
Un expert connaitrait-il ce logiciel ?
merci

Bonsoir,
Suite à la mise à jour de l’ecodevices vers 1.05.04, il m’est impossible d’écrire dans ma base sql avec le fichier ecod2sql.php
Erreur dans la requete INSERT INTO table SET
J’ai réinstallé la version 1.05.00 tout refonctionne normalement.
Après vérification des 2 fichiers json dans la version 1.05.04 T2_HCHP et T2_HCHC ne figurent plus. Il faut sans doute supprimer les 2 champs correspondant dans le fichier ecod2sql.php ainsi que les 2 colonnes dans la table sql. N’ayant pas le temps ce soir, je ferai l’essai ce we.
Version 1.05.00

{"product":"Eco-devices","T1_PTEC":"HC..","T1_PAPP":850,"T1_HCHP":19924123,"T1_HCHC":14269437,"T2_PTEC":"----","T2_PAPP":0,"T2_HCHP":0,"T2_HCHC":0,"INDEX_C1":0,"INDEX_C2":17169}

Version 1.05.04

{"product":"Eco-devices","T1_PTEC":"HC..","T1_PAPP":850,"T1_HCHP":19924123,"T1_HCHC":14269437,"T2_PTEC":"----","T2_PAPP":0,"INDEX_C1":0,"INDEX_C2":17169}

Bonjour,

On va verifier de notre coté car normalement ces 2 champs doivent etre présent dans le json…

Cdt,

Patrick

Bonjour,

Depuis le passage en 1.5.05 j’ai une erreur sur le fichier sql
timestp = 1390661568, rec_date=20140125, rec_time=155248, T1_PTEC=‹  ›, T1_PAPP=, T1_HCHP=0, T1_HCHC=0, T1_BASE=, T2_PTEC=‹  ›, T2_PAPP=, T2_HCHP=0, T2_HCHC=0, T2_BASE=, INDEX_C1=, CUMUL_C1=0, INST_C1=0, INDEX_C2=, CUMUL_C2=0, INST_C2=0Erreur dans la requète INSERT INTO teleinfov3 SET timestp = 1390661568, rec_date=20140125, rec_time=155248, T1_PTEC=‹  ›, T1_PAPP=, T1_HCHP=0, T1_HCHC=0, T1_BASE=, T2_PTEC=‹  ›, T2_PAPP=, T2_HCHP=0, T2_HCHC=0, T2_BASE=, INDEX_C1=, CUMUL_C1=0, INST_C1=0, INDEX_C2=, CUMUL_C2=0, INST_C2=0 :

quand je regarde le api/xdevices.json?cmd=10 il me renvoi
{« product »:« Eco-devices »,« T1_PTEC »:« TH… »,« T1_PAPP »:400,« T1_BASE »:1792035,« T2_PTEC »:« ---- »,« T2_PAPP »:0,",« INDEX_C1 »:0,« INDEX_C2 »:0}

Ça fonctionnait normalement avant.

Merci pour votre aide

Serge