Suivi production automatique (teleinformation EDF)

Modérateur : GPPEP - Conseil Administration


Vous pensez être victime d'une arnaque au photovoltaïque ?
http://victime-photovoltaique.fr/


Avatar du membre
Chajo
BDPV
BDPV
Messages : 216
Enregistré le : 07 déc. 2007 01:00
Localisation : 01 / Ain - Rhône Alpes

Re: Suivi production automatique (teleinformation EDF)

Messagepar Chajo » 03 janv. 2009 11:51

pascal58b a ecrit:Bonjour,

Questions:
Les signaux de sorties du teleinfo sont de quelles natures? alternatif ou continu ?
Est ce un souci de laisser en permanence l'interface connectee sur les borne du teleinfo?
Peut-etre un optocoupleur a triac pour faire l'aiguillage ?

Comment faites vous pour lire 2 compteurs sans jouer avec les prises ?

Merci d'avance


Bonjour,

Voici les specifications de transmission du signal teleinfo :
a1) transmission binaire,
a2) mode de transmission unidirectionnel,
a3) vitesse de modulation : 1200 Bauds � 1%,
a4) duree egale des bits a "0" et a "1",
a5) modulation d'amplitude sur une porteuse a 50 kHz � 3%,
a6) logique de codage negative :
presence de la porteuse => bit a "0",
absence de la porteuse => bit a "1".

Pour detecter le signal et le transformer en compatible RS232, le montage Dauguet/LeFrancois detecte l'enveloppe du 50 kHz en integrant les impulsions 50 kHz par la cellule RC 2,2 kohms et le 100 nF, ensuite le 74 LS132 remet en forme grace a ses entrees trigger.

Il n'y a aucun inconvenient a laisser l'interface connectee sur les bornes teleinfo du compteur.

Le mode de transmission etant unidirectionnel, il me semble impossible de commuter les sorties teleinfo de deux compteurs vers une seule entree serie, tu perdras inevitablement des trames, l'absence de handshaking obligeant a se resynchroniser apres chaque commutation.

Il me semble plus judicieux d'utiliser deux cartes avec interfaces RS232/USB, les ports USB etant plus nombreux sur un PC.

Charles
Remarque : L'ensemble de mes propos sont personnels et mes interventions en tant que modérateur sont de couleur verte ou rouge

Producteur particulier adhérent au Imageéquipé de :15 panneaux Daxtec 200 Wc soit 3 kWc, Pente 20°, Orientation Sud 0°Onduleur Mastervolt QS 3500 MaxIEn service depuis le 17 avril 2008, ma fiche est sur Image

Avatar du membre
trebosc
Fondateur GPPEP
Fondateur GPPEP
Messages : 4188
Enregistré le : 23 juil. 2007 01:00
BDPV : trebosc
Departement/Region : 31
Professionnel PV : Non
Localisation : 31 - Midi-Pyrénées
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar trebosc » 03 janv. 2009 16:22

pascal58b a ecrit:Je n'ai qu'un port Com disponible et je voudrais lire le compteur principal et le compteur de production

Le montage fonctionne aussi en USB avec un convertisseur.

Citation:Comment faites vous pour lire 2 compteurs sans jouer avec les prises ?

J'ai un montage en USB et un en serie
(pas ceux de A dauguet, mais a la base, c'est le montage de Bernard Le Francois)


Au prie, comme toutes les trames envoient le numero du compteur, tu peux mettre un relais qui commute sur un compteur ou un autre.
Image Président d'ASSO BDPV - Association de promotion du Photovoltaïque
Image Créateur de BDPV et Image du Forum Photovoltaïque.

Image Membre du GPPEP

sommeteo
BDPV
BDPV
Messages : 89
Enregistré le : 25 juil. 2008 01:00
Localisation : 80 Somme
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar sommeteo » 10 févr. 2009 22:39

Bonsoir, je suis interesse par le module de M Dauguet mais j'ai tout un tas de questions, etant assez nul en electronique.
* Apparemment il y a un boitier a brancher sur le compteur de revente mais ou? Je ne vois absolument aucun endroit sur le compteur pour accueillir des fiches...
* que branche-t-on alors sur le PC?
* Mon port com est deja occupe, puis-je utiliser un port USB?
* Y-a-t-il une distance minimale entre le PC et le compteur?
* Certains l'utilisent-ils? Est-ce un bon moyen de recuperer les donnees? fiabilite?
* Si le compteur est neuf, il est compatible non? Si le compteur n'est pas en mode teleinfo, EDF accepte-t-il de venir pour cela gratuitement?
* Les donnees recuperees par le PC sont exploitables par un tableur ou pas?

Voila, c'est peut-etre bete comme questions mais je les avais en tete.
Merci beaucoup.
2520 Wc dans la Somme onduleur SMA SB 2100 TL.
Mon site de météo et écolo http://sommeteo.free.fr/ et mon installation: http://sommeteo.free.fr/solaire.htm
Ma fiche BDPV:http://www.bdpv.fr/fiche_utilisateur.php?util=sommeteo
[img]http://sommeteo.free.fr/html/minidisplay.gif[/img] [img]http://www.bdpv.fr/graphique/production.php?taille_graphique=petit&utilisateur=1972[/img]

Avatar du membre
trebosc
Fondateur GPPEP
Fondateur GPPEP
Messages : 4188
Enregistré le : 23 juil. 2007 01:00
BDPV : trebosc
Departement/Region : 31
Professionnel PV : Non
Localisation : 31 - Midi-Pyrénées
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar trebosc » 11 févr. 2009 10:26

sommeteo a ecrit:Bonsoir, je suis interesse par le module de M Dauguet mais j'ai tout un tas de questions, etant assez nul en electronique.

le forum est la pour cela Image


Citation:* Apparemment il y a un boitier a brancher sur le compteur de revente mais ou? Je ne vois absolument aucun endroit sur le compteur pour accueillir des fiches...

Voir la doc du compteur EDF - Page 7

Citation:* que branche-t-on alors sur le PC?

Le montage via une prise serie ou USB.
Citation:* Mon port com est deja occupe, puis-je utiliser un port USB?

Oui, soit avec un adaptateur, soit en achetant directementle montage USB.

Citation:* Y-a-t-il une distance minimale entre le PC et le compteur?

maximale ?
Je crois que c'est 20m maxi.
Citation:* Certains l'utilisent-ils? Est-ce un bon moyen de recuperer les donnees? fiabilite?

Oui c'est le plus simple et au niveau fiabilite, c'est top.
Attention, cela ne recupere que l'index du compteur et pas les informations de l'onduleur.

Citation:* Si le compteur est neuf, il est compatible non? Si le compteur n'est pas en mode teleinfo, EDF accepte-t-il de venir pour cela gratuitement?

Jusqu'a present (fin 2008) c'est gratuit.

Citation:* Les donnees recuperees par le PC sont exploitables par un tableur ou pas?

Oui, il y a un fichier csv qui est genere.
Et l'information est meme envoyee directement sur BDPV Image
Image Président d'ASSO BDPV - Association de promotion du Photovoltaïque
Image Créateur de BDPV et Image du Forum Photovoltaïque.

Image Membre du GPPEP

sommeteo
BDPV
BDPV
Messages : 89
Enregistré le : 25 juil. 2008 01:00
Localisation : 80 Somme
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar sommeteo » 11 févr. 2009 10:58

Merci beaucoup, tes reponses m"eclairent bien!
J'ai bien repere les bornes de teleinfo sur mon compteur
Du coup je crois avoir compris qu'il faut une liaison filaire entre le compteur et le montage connecte au PC?
Faut-il aussi prevoir une alim 5V DC ou la prise USB alimente-t-elle seule le montage?
Merci!
2520 Wc dans la Somme onduleur SMA SB 2100 TL.
Mon site de météo et écolo http://sommeteo.free.fr/ et mon installation: http://sommeteo.free.fr/solaire.htm
Ma fiche BDPV:http://www.bdpv.fr/fiche_utilisateur.php?util=sommeteo
[img]http://sommeteo.free.fr/html/minidisplay.gif[/img] [img]http://www.bdpv.fr/graphique/production.php?taille_graphique=petit&utilisateur=1972[/img]

Avatar du membre
trebosc
Fondateur GPPEP
Fondateur GPPEP
Messages : 4188
Enregistré le : 23 juil. 2007 01:00
BDPV : trebosc
Departement/Region : 31
Professionnel PV : Non
Localisation : 31 - Midi-Pyrénées
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar trebosc » 12 févr. 2009 02:24

sommeteo a ecrit:Du coup je crois avoir compris qu'il faut une liaison filaire entre le compteur et le montage connecte au PC?

Oui, mais il existe un modele sans fil (voir ICI) il est plus cher, mais on evite le fil.

Citation:Faut-il aussi prevoir une alim 5V DC ou la prise USB alimente-t-elle seule le montage?

Non, le montage USB n'a pas besoin d'alim (et faut que je mette une photo, il est super hyper petit !!)
Image Président d'ASSO BDPV - Association de promotion du Photovoltaïque
Image Créateur de BDPV et Image du Forum Photovoltaïque.

Image Membre du GPPEP

teddy01fr
BDPV
BDPV
Messages : 7
Enregistré le : 16 janv. 2009 01:00
Localisation : 34

Probleme avec le montage teleinfo

Messagepar teddy01fr » 21 févr. 2009 11:29

Bonjour a tous,

j'ai bien recu et installe le module Teleinfo USB.

Il a fonctionne parfaitement a la premiere installation, mais des le redemarrage du PC, et bien que je l'ai debranche avant de redemarrer, mon PC le reconnait comme une souris serie ou un trackball et le pointeur s'affole. Impossible de desactiver cette detection automatique, et comme le PC devient incontrolable impossible de desactiver cette "souris serie" dans le gestionnaire de peripheriques.

J'ai pourtant bien configure un port virtuel en COM2 sur le port USB
concerne.

J'ai le meme probleme sur mon PC bureau et sur mes deux portables (tous sous XP)

Qui aurait une suggestion ?

Cordialement.

Avatar du membre
trebosc
Fondateur GPPEP
Fondateur GPPEP
Messages : 4188
Enregistré le : 23 juil. 2007 01:00
BDPV : trebosc
Departement/Region : 31
Professionnel PV : Non
Localisation : 31 - Midi-Pyrénées
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar trebosc » 21 févr. 2009 13:30

teddy01fr a ecrit:impossible de desactiver cette "souris serie" dans le gestionnaire de peripheriques.

Impossible ?
IL faut brancher le montage.
Eteindre le pc
debrancher le montage
allumer le pc
desactiver la souris (dans gestion du materiel).

Et vouilou.

Enfin sous XP tout au moins.
Image Président d'ASSO BDPV - Association de promotion du Photovoltaïque
Image Créateur de BDPV et Image du Forum Photovoltaïque.

Image Membre du GPPEP

teddy01fr
BDPV
BDPV
Messages : 7
Enregistré le : 16 janv. 2009 01:00
Localisation : 34

Re: Suivi production automatique (teleinformation EDF)

Messagepar teddy01fr » 22 févr. 2009 15:42

Bon, a force de perseverance j'ai reussi, mais ca a ete sport, car mon pointeur de souris se balladait tres vite partout sur l'ecran.
J'ai donc mis le gestionnaire de peripheriques en plein ecran, branche le module jusqu'a ce qu'il soit detecte, et lorsque le pointeur est parti en live, j'ai reussi a selectionner le peripherique avec le clavier, appuyer sur enter pour ouvrir les proprietes, debranche le module, et desactive le peripherique !
Cela 3 fois de suite, pour souris serie, souris Microsoft serie et ballpoint !!! Pour plus de securite j'ai renomme les drivers de ces peripheriques !

Donc module a eviter pour ceux qui ne maitrisent pas leur PC !!!

Maintenant j'ai un autre probleme !!!!

J'ai bien configure le port COM7 avec 1200, 7, 1 pair, et Hyperterminal recoit bien les donnees. Mais lorsque je lance teleinfoservice v4, il reconnait le port (test COM7 OK) mais refuse de lancer le service ...
"Can't open service"

Heu, c'est moi qui suis nul ou bien quoi ?

Deja que j'en ai chi.. pour configurer le Sunny Portal avec le Sunny Beam ... bon ca a l'air de fonctionner.

Qui peut m'aider ? Merci d'avance ...

teddy01fr
BDPV
BDPV
Messages : 7
Enregistré le : 16 janv. 2009 01:00
Localisation : 34

Ca marche !!!

Messagepar teddy01fr » 22 févr. 2009 15:47

Bon desole pour le derangement, j'ai reinstalle teleinfoservice et ca marche !

A bientot sans doute !

olab
BDPV
BDPV
Messages : 4822
Enregistré le : 10 déc. 2008 01:00
Localisation : 40

Re: Suivi production automatique (teleinformation EDF)

Messagepar olab » 22 févr. 2009 17:11

Citation:Can't open service"
Si le module est declare comme service, allez voir dans le panneau de configuration, outils d'administration, services si le service en question apparait, qu'il n'est pas desactive et quel est son mode de demarrage. S'il n'est pas demarre, essayez de le demarrer (clic bouton droit, demarrer). S'il demarre, il vous faudra peut-etre le mettre en automatique pour ne plus avoir a le refaire. S'il ne demarre pas, verifier ses dependances (double clic gauche, onglet dependances) Image
Je déconseille modérément toutes relations avec les sociétés figurant dans cette liste.
ImageMon installationImage

Avatar du membre
trebosc
Fondateur GPPEP
Fondateur GPPEP
Messages : 4188
Enregistré le : 23 juil. 2007 01:00
BDPV : trebosc
Departement/Region : 31
Professionnel PV : Non
Localisation : 31 - Midi-Pyrénées
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar trebosc » 22 févr. 2009 22:28

teddy01fr a ecrit:Bon desole pour le derangement, j'ai reinstalle teleinfoservice et ca marche !

Super Image

J'attends avec impatience vos donnees dans BDPV !

Mais .... euh .... vous avez pas aussi un boitier SMA ?
Image Président d'ASSO BDPV - Association de promotion du Photovoltaïque
Image Créateur de BDPV et Image du Forum Photovoltaïque.

Image Membre du GPPEP

teddy01fr
BDPV
BDPV
Messages : 7
Enregistré le : 16 janv. 2009 01:00
Localisation : 34

Teleinfo

Messagepar teddy01fr » 26 févr. 2009 21:49

Bonsoir, oui je confirme, Sunny Beam + teleinfo !!!

Mais je rencontre un probleme avec chacun des deux !

Mon compte Sunny Portal est bloque, je recois le message suivant lorsque j'essaie de me loguer Votre temps de session est ecoule. Veuillez acceder anouveau a[b]partir de la page d'accueil.
Et ensuite :Your SunnyPortal session is timed out or an error occured.
Please click on the link below, to navigate to the SunnyPortal startpage.
Ihre SunnyPortal Sitzung wurde getrennt oder w�hrend der Verarbeitung trat ein Fehler auf

Et mon logiciel teleinfo ne fonctionne plus a chaque redemarrage du PC, je suis oblige de le reinstaller ....
Qui a dit : "changer utilisateur ???"

Cordialement ...

Avatar du membre
trebosc
Fondateur GPPEP
Fondateur GPPEP
Messages : 4188
Enregistré le : 23 juil. 2007 01:00
BDPV : trebosc
Departement/Region : 31
Professionnel PV : Non
Localisation : 31 - Midi-Pyrénées
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar trebosc » 27 févr. 2009 09:06

Vous avez en mp l'email du concepteur du logiciel.
Il va vous aider a traquer le bug.
Image Président d'ASSO BDPV - Association de promotion du Photovoltaïque
Image Créateur de BDPV et Image du Forum Photovoltaïque.

Image Membre du GPPEP

equinoxe
Messages : 1
Enregistré le : 11 juin 2009 01:00
Localisation : 61

Re: Suivi production automatique (teleinformation EDF)

Messagepar equinoxe » 20 juin 2009 10:37

Bonjour Trebosc,
J'ai un probleme avec ma releve teleinfo.
Pour ma PAC j'utilise le soft de Dauguet qui fonctionne avec un montage de releve sur port Serie (suivant tes plans) et un convertisseur Usb/serie que j'avais eu avec ma station meteo, jusque la pas de probleme et ca fonctionne nickel.
Je veux maintenant relever mon compteur principal, donc j'ai realise une deuxieme carte avec un deuxieme convertisseur usb/serie achete sur Ebay et a base de PL2303.
Et la probleme. Rien ne passe.
La deuxieme carte fonctionne car je l'ai teste avec mon premier convertisseur. Donc le probleme vient de mon second convertisseur.

As-tu deja rencontre ce probleme ?
Si oui, peux-tu me conseiller un endroit ou trouver un convertisseur qui est sur de fonctionner ?
Pour info, je suis oblige de passer par des convertisseurs usb/serie car je travail sur un portable et je n'ai pas de port serie.

Avatar du membre
ratus59
Membre GPPEP
Membre GPPEP
Messages : 10
Enregistré le : 14 août 2009 01:00
Departement/Region : 34560
Professionnel PV : Non
Localisation : 34
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar ratus59 » 22 août 2009 22:58

Bonjour a tous
Ce serai pour savoir quel genre de cable il faut mettre pour le systeme teinfo

J'ai commander la platine electronique en USB pour l'ordi

Merci

cast66
BDPV
BDPV
Messages : 14
Enregistré le : 13 sept. 2009 01:00
Localisation : 66

Re: Suivi production automatique (teleinformation EDF)

Messagepar cast66 » 02 févr. 2010 17:15

avez vous tester le renvoie par cle wifi avec le module usb ?

c'est a dire mettre une cle wifi usb sur la carte a cote du compteur et releve direct de l'ordinateur .

Merci

sbaudry
Membre GPPEP
Membre GPPEP
Messages : 61
Enregistré le : 30 oct. 2007 01:00
BDPV : sbaudry
Departement/Region : 44
Localisation : Boussay, 44
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar sbaudry » 14 mars 2010 09:57

Salut,

ça y est j'ai mis en place l'enregistrement des données de consommation et de production électrique chez moi.
http://sbaudry.wordpress.com/

J'ai utilisé les composants suivants :

- Vieux Céléron 433Mhz, 128Mo de RAM avec Windows 2000

- Wamp (package d'installation d'Apache MySql PHP pour windows)

- 2 interfaces pour relier les ports série COM1 COM2 aux compteurs, réalisées par hd31 de chaleurterre
Image
http://www.chaleurterre.com/forum/viewt ... &&start=45

- Le logiciel d'Anthony Dauguet qui permet la réception et l'enregistrement en base MySQL (10€)
http://teleinfo.dauguet.net/

- et les scripts PHP de Domos récupérés sur son site :
http://vesta.homelinux.net/wiki/demodul ... n_edf.html

J'ai aussi fait un script PHP pour m'alerter par email en cas de non production de l'installation photovoltaique, qui tourne toutes les heures.

Le résultat :
Image
Image
Image
Image

Sinon dans les problèmes, j'ai constaté que les services windows de teleinfo du logiciel dauguet ne redémarrent pas automatiquement,
bien qu'ils soient configurés en automatique, bizarre... Je force le redémarrage des services par tâche planifiée s'exécutant au démarrage de l'ordinateur.

Sinon j'utilise le service gratuit Montastic, qui permet d'être avertit si le site web n'est plus accessible, ce qui me permet de détecter si l'ordinateur s'est arrêté ou si la connexion internet est défectueuse. http://www.montastic.com/

Avatar du membre
ericg
Modérateur
Modérateur
Messages : 4814
Enregistré le : 23 mars 2009 01:00
Localisation : 31

Re: Suivi production automatique (teleinformation EDF)

Messagepar ericg » 10 mai 2010 23:03

Salut,

Je trouve tes graphiques très sympa. Par contre je suis un débutant en php... J'ai recupere les sources des php de domos mais il semble que les champs utilisés pour la table teleinfo ne correspondents aux champs enregistrés pas le logiciel teleinfo, au moins pour les timestamp, rec-date et rec_time.
Est ce que tu as modifié les scripts php ou alors la base mysql?

Merci d'avance,

Eric
Remarque : L'ensemble de mes propos est personnel et mes interventions en tant que modérateur sont de couleur verte ou rouge
Ma fiche BDPV - Mon site avec ma prod grace à Jsunnyreports*

sbaudry
Membre GPPEP
Membre GPPEP
Messages : 61
Enregistré le : 30 oct. 2007 01:00
BDPV : sbaudry
Departement/Region : 44
Localisation : Boussay, 44
Contact :

Re: Suivi production automatique (teleinformation EDF)

Messagepar sbaudry » 17 mai 2010 01:15

Bonjour,

J'avais adapté un peu les scripts.

Voici les scripts pour l'affichage de la production. Si besoin de ceux pour la consommation me demander je les mettrai aussi.

Pour les 8 derniers jours :

Code : Tout sélectionner

<?php
// Génére un graphe en image PNG en fonction des données téléinfo de la base MySql.
// Consommation sur 8 jours / 8 semaines / 8 mois en kwh HP et HC.
// Par Domos.
 
/*
Appel par:
http://localhost/teleinfo/kwh_jpgraph.php?periode=8jours
http://localhost/teleinfo/kwh_jpgraph.php?periode=8semaines
http://localhost/teleinfo/kwh_jpgraph.php?periode=8mois
*/
 
// Requète MySql.
/*
Format de la table:
timestamp    rec_date    rec_time    adco       optarif isousc    hchp       hchc       ptec    inst1    inst2    inst3    imax1    imax2    imax3    pmax    papp    hhphc    motdetat    ppot    adir1    adir2    adir3
1234998004    2009-02-19    00:00:04    700609361116    HC..    20    11008467    10490214    HP    1    0    1    18    23    22    8780    400    E    000000       00    0    0    0
1234998065    2009-02-19    00:01:05    700609361116    HC..    20    11008473    10490214    HP    1    0    1    18    23    22    8780    400    E    000000       00    0    0    0
1234998124    2009-02-19    00:02:04    700609361116    HC..    20    11008479    10490214    HP    1    0    1    18    23    22    8780    390    E    000000       00    0    0    0
1234998185    2009-02-19    00:03:05    700609361116    HC..    20    11008484    10490214    HP    1    0    0    18    23    22    8780    330    E    000000       00    0    0    0
1234998244    2009-02-19    00:04:04    700609361116    HC..    20    11008489    10490214    HP    1    0    0    18    23    22    8780    330    E    000000       00    0    0    0
1234998304    2009-02-19    00:05:04    700609361116    HC..    20    11008493    10490214    HP    1    0    0    18    23    22    8780    330    E    000000       00    0    0    0
1234998365    2009-02-19    00:06:05    700609361116    HC..    20    11008498    10490214    HP    1    0    0    18    23    22    8780    320    E    000000       00    0    0    0
 
Consommation sur 1 semaine.
 
SELECT `rec_date` ,
( ( MAX( `hchp` ) - MIN( `hchp` ) ) /1000) AS "kWh HP sur journée",
( ( MAX( `hchc` ) - MIN( `hchc` ) ) /1000) AS "kWh HC sur journée"
FROM `teleinfo`
WHERE timestamp > "1234134000"         # 09/02/2009 00:00:00
GROUP BY rec_date
ORDER BY rec_date ;
 
Résultat:
rec_date    kWh HP sur journée    kWh HC sur journée
2009-02-09    8.8670          21.2310
2009-02-10    19.0240       11.9830
2009-02-11    32.1250       27.1690
2009-02-12    31.6670       22.5270
2009-02-13    34.3350       25.1270
2009-02-14    37.5690       29.7890
2009-02-15    26.9540       24.6730
2009-02-16    18.1340       14.0820
 
 
Consommation sur n semaines:
SELECT rec_date, DATE_FORMAT( rec_date, 'sem %v' ) AS 'sem',
ROUND( ((MAX( `hchp` ) - MIN( `hchp` ) ) /1000), 1),
ROUND( ((MAX( `hchc` ) - MIN( `hchc` ) ) /1000), 1)
FROM `teleinfo`
WHERE timestamp > '1228950000'         # 11/12/2008 00:00:00
GROUP BY sem
ORDER BY rec_date ;
 
rec_date    sem    ROUND( ((MAX(`hchp`) - MIN(`hchp`)) / 1000) ,1 )    ROUND( ((MAX(`hchc`) - MIN(`hchc`)) / 1000) ,1 )
2008-12-11     sem 50     58.2     77.2
2008-12-15    sem 51       161.5    146.0
2008-12-22    sem 52       144.1    106.9
2008-12-29    sem 01       194.5    153.1
2009-01-05    sem 02       239.2    181.7
2009-01-12    sem 03       100.2    111.5
2009-01-25    sem 04       5.7    0.0
2009-01-26    sem 05       91.4    115.6
2009-02-03    sem 06       125.3    107.0
2009-02-09    sem 07       190.6    162.5
2009-02-16    sem 08       106.3    67.8
 
 
Consommation sur n  mois:
SELECT rec_date, DATE_FORMAT( rec_date, '%b' ) AS 'mois',
ROUND( ((MAX( `hchp` ) - MIN( `hchp` ) ) /1000), 1),
ROUND( ((MAX( `hchc` ) - MIN( `hchc` ) ) /1000), 1)
FROM `teleinfo`
WHERE timestamp > '1228950000'         # 11/12/2008 00:00:00
GROUP BY mois
ORDER BY rec_date ;
 
rec_date    mois    ROUND( ((MAX(`hchp`) - MIN(`hchp`)) / 1000) ,1 )    ROUND( ((MAX(`hchc`) - MIN(`hchc`)) / 1000) ,1 )
2008-12-11     Dec     457.6        409.7
2009-01-01    Jan    701.8       644.7
2009-02-03    Feb    422.5       337.3
*/
 
//Librairies JpGraph
include ("./jpgraph/src/jpgraph.php");
include ("./jpgraph/src/jpgraph_bar.php");
 
setlocale (LC_ALL, "fr_FR") ;

if (!empty($_GET['periode']))
    $periode = $_GET['periode'] ;
else
    $periode = "8jours";
 
switch ($periode) {
   case "8jours":
      $nbjours = 7 ;                        // nb jours.
      $xlabel = "jours" ;
      $periodesecondes = $nbjours*24*3600 ;               // Periode en secondes.
      $timestampheure = mktime(0,0,0,date("m"),date("d"),date("Y"));      // Timestamp courant.
      $timestampdebut = $timestampheure - $periodesecondes ;         // Recule de $periodesecondes.
      $dateformatsql = "%a %e" ;
      break;
   case "8semaines":
      $timestampdebut = mktime(0,0,0, date("m")-2, date("d"), date("Y"));
      $nbjour=1 ;
      while ( date("w", $timestampdebut) != 1 )   // Avance d'un jour tant que celui-ci n'est pas un lundi.
      {
         $timestampdebut = mktime(0,0,0, date("m")-2, date("d")+$nbjour, date("Y"));
         $nbjour++ ;
      }
      $xlabel = "semaines" ;
      $dateformatsql = "sem %v" ;
      break;
   case "8mois":
      $timestampdebut = mktime(0,0,0, date("m")-7, 1, date("Y"));
      $xlabel = "mois" ;
      $dateformatsql = "%b" ;
      break;
   default:
      die("Periode erronée, valeurs possibles: [8jours|8semaines|8mois] !");
      break;
}
 
//printf("datedebut : (%s) %s<br \>", $timestampdebut, date("YmdHis", $timestampdebut)) ;
 
$serveur="localhost" ;
$login="login_mysql" ;
$base="nom_base_mysql" ;
$fd = fopen ("chemin vers le fichier texte contenant le mot de passe", "r") ;
$pass = rtrim(fgets($fd, 4096)) ;   // $pass contient password compte root MySql.
fclose ($fd);
 
$link = mysqli_connect($serveur, $login, $pass) or die("Erreur de connexion au serveur MySql");
mysqli_select_db($link, $base) or die("Erreur de connexion a la base de donnees $base");
$table="dbiteleinfo";
$query="SET lc_time_names = 'fr_FR'" ;                  // Pour afficher date en français dans MySql.
mysqli_query($link, $query) ;
$query="SELECT CAST(date AS DATE) as rec_date, DATE_FORMAT(CAST(date AS DATE), '$dateformatsql') AS 'periode' ,
   ROUND( ((MAX(`base`) - MIN(`base`)) / 1000) ,1 )
   FROM `$table`
   WHERE UNIX_TIMESTAMP(date) > '$timestampdebut'
   GROUP BY periode
   ORDER BY rec_date" ;
$result=mysqli_query($link, $query) or die ("<b>Erreur</b> dans la requète <b>" . $query . "</b> : "  . mysqli_error() . " !<br>");
$num_rows = mysqli_num_rows($result) ;
$no = 0 ;
while ($row = mysqli_fetch_array($result))
{
   //printf("%s, %s, %s<br \>", $row["rec_date"], $row["periode"], $row[2], $row[3]) ;
   $date[$no] = $row["rec_date"] ;
   $timestp[$no] = $row["periode"] ;
   $kwhhp[$no]=$row[2] ;
   $no++ ;
}
mysqli_free_result($result) ;
mysqli_close($link) ;
 
//exit(0) ;   
 
//$date_digits_dernier_releve=explode("-", $date[count($date) -1]) ;
//$date_dernier_releve =   Date("d/m/Y", mktime(0,0,0, $date_digits_dernier_releve[1] ,$date_digits_dernier_releve[2], $date_digits_dernier_releve[0])) ;
$date_dernier_releve = $date[count($date) -1];

// Génération du graphe.   
$graph = new Graph(800,400);
$graph->SetMargin(60,40,40,80);
$graph->SetMarginColor('black');
$graph->SetColor('gray1');
 
$graph->SetScale("textlin");
 
// Specify X-labels
$graph->xaxis->SetTickLabels($timestp);
$graph->xaxis->title->SetColor("gray7");
$graph->xaxis->SetColor("gray5","gray7");
$graph->yaxis->title->SetColor("gray7");
$graph->yaxis->SetColor("gray5","gray7");
 
$graph->ygrid->SetColor("gray5");
$graph->ygrid->Show(true, true) ;
$graph->xgrid->SetColor("gray5");
$graph->xgrid->Show(true) ;
 
// Adjust the legend position
$graph->legend->SetLayout(LEGEND_HOR);
$graph->legend->Pos(0.05,0.97,"left","bottom");
 
// Create the bar plots
$b1plot = new BarPlot($kwhhp);
$b1plot->SetFillColor("red");
$b1plot->SetShadow();
$b1plot->value->SetColor("white") ;
$b1plot->value->Show();
$b1plot->SetLegend("Production Solaire");
 
 
// $b2plot = new BarPlot($kwhhc);
// $b2plot->SetFillColor("green");
// $b2plot->SetShadow();
// $b2plot->value->SetColor("black") ;
// $b2plot->value->Show();
// $b2plot->SetLegend("HC");
 
// Create the grouped bar plot
//$gbplot = new GroupBarPlot(array($b1plot,$b2plot)) ;
//$gbplot = new AccBarPlot(array($b2plot,$b1plot)) ;
 
// ...and add it to the graPH
$graph->Add($b1plot);
 
$graph->title->Set("Historique de la production le $date_dernier_releve");
$graph->title->SetColor("gray7");
$graph->xaxis->title->Set("$xlabel");
$graph->yaxis->title->Set("kwh");
 
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetMargin(25);
 
// Display the graph
$graph->Stroke();
?>


Pour le détail du jour courant :

Code : Tout sélectionner

<?php
// Génére un graphe en image PNG en focntion des donnée téléinfo PAPP de la base MySql.
// Puissance apparente en watts HP et HC.
// Par Domos.
 
//Librairies JpGraph
include ("./jpgraph/src/jpgraph.php");
include ("./jpgraph/src/jpgraph_line.php");
 
// Base de donnée Téléinfo:
/*
Format de la table:
timestamp    rec_date    rec_time    adco       optarif isousc    hchp       hchc       ptec    inst1    inst2    inst3    imax1    imax2    imax3    pmax    papp    hhphc    motdetat    ppot    adir1    adir2    adir3
1234998004    2009-02-19    00:00:04    700609361116    HC..    20    11008467    10490214    HP    1    0    1    18    23    22    8780    400    E    000000       00    0    0    0
1234998065    2009-02-19    00:01:05    700609361116    HC..    20    11008473    10490214    HP    1    0    1    18    23    22    8780    400    E    000000       00    0    0    0
1234998124    2009-02-19    00:02:04    700609361116    HC..    20    11008479    10490214    HP    1    0    1    18    23    22    8780    390    E    000000       00    0    0    0
1234998185    2009-02-19    00:03:05    700609361116    HC..    20    11008484    10490214    HP    1    0    0    18    23    22    8780    330    E    000000       00    0    0    0
1234998244    2009-02-19    00:04:04    700609361116    HC..    20    11008489    10490214    HP    1    0    0    18    23    22    8780    330    E    000000       00    0    0    0
1234998304    2009-02-19    00:05:04    700609361116    HC..    20    11008493    10490214    HP    1    0    0    18    23    22    8780    330    E    000000       00    0    0    0
1234998365    2009-02-19    00:06:05    700609361116    HC..    20    11008498    10490214    HP    1    0    0    18    23    22    8780    320    E    000000       00    0    0    0
*/
 
setlocale   ( LC_ALL , "fr_FR" );
 
// Formatage Date.
function TimeCallback($aVal)
{
    return Date('H:i', $aVal);
}
 
$periodesecondes = 24*3600 ;                     // 24h.
$heurecourante = date('H') ;                     // Heure courante.
$timestampheure = mktime($heurecourante,0,0,date("m"),date("d"),date("Y"));   // Timestamp courant à heure fixe (mn et s à 0).
$timestampdebut = $timestampheure - $periodesecondes ;            // Recule de 24h.
//printf("datedebut : (%s) %s<br \>", $timestampdebut, date("YmdHis", $timestampdebut)) ;
 
// Connexion MySql et requète.
$serveur="localhost";
$login="login_mysql" ;
$base="nom_base_mysql" ;
$fd = fopen ("chemin vers le fichier texte contenant le mot de passe", "r") ;
$pass = rtrim(fgets($fd, 4096)) ;   // $pass contient password compte root MySql.
fclose ($fd);
$link = mysqli_connect($serveur, $login, $pass) or die("Erreur de connexion au serveur MySql");
mysqli_select_db($link, $base) or die("Erreur de connexion a la base de donnees $base");
 
$table="dbiteleinfo";
$query="SELECT UNIX_TIMESTAMP(date) as timestamp, CAST(date AS DATE) as rec_date, CAST(date AS TIME) as rec_time, ptec, papp
   FROM `$table`
   WHERE UNIX_TIMESTAMP(date) >= $timestampdebut
   ORDER BY timestamp DESC" ;
$result=mysqli_query($link, $query) or die ("<b>Erreur</b> dans la requète <b>" . $query . "</b> : "  . mysqli_error() . " !<br>");
$num_rows = mysqli_num_rows($result) ;
$num_rows-- ;
$pmax = 0 ;
while ($row = mysqli_fetch_array($result))
{
        if ($row["papp"]>$pmax)
            $pmax = $row["papp"];

   //printf("Timestamp_unix: %s, Date: %s, Heure: %s, ptec: %s, papp: %s <br \>", $row[0], $row["rec_date"], $row["rec_time"], $row["ptec"], $row["papp"]);
   $timestp[$num_rows] = $row["timestamp"] ;
   // if ( $row["ptec"] == "HP.." )         // Test si heures pleines.
   // {
   //    $papphp[$num_rows] = $row["papp"] ;
   //    $papphc[$num_rows ] = 0 ;
   // }
   // else
   // {
      $papphp[$num_rows] = 0 ;
      $papphc[$num_rows] = $row["papp"] ;
   // }
   $num_rows-- ;
}
mysqli_free_result($result) ;
mysqli_close($link) ;
 
//exit(0) ;
 
$date =   Date('d/m/Y, H:i', $timestp[count($timestp) -1]) ;
 
// Get start time
$start = $timestp[0] ;
$end = $timestp[count($timestp) -1] ;
 
// Génération du graphe.   
$graph = new Graph(800,400);
$graph->SetMarginColor('black');
$graph->SetColor('gray1');
$graph->SetMargin(60,40,40,80);
 
$graph->SetScale("intlin",0,$pmax,$start,$end);
$graph->title->Set("Puissance electrique apparente le $date");
$graph->title->SetColor("gray7");
 
$graph->yaxis->title->Set("Watts");
$graph->yaxis->title->SetMargin(20);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetColor("gray7");
$graph->xaxis->title->Set("24h");
$graph->xaxis->title->SetMargin(30);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetColor("gray7");
 
$graph->yaxis->SetColor("gray5","gray7");
$graph->xaxis->SetColor("gray5","gray7");
 
$graph->ygrid->SetColor("gray5");
$graph->xgrid->Show(true) ;
$graph->xgrid->SetColor("gray5");
 
// Setup the callback and adjust the angle of the labels
$graph->xaxis->SetLabelFormatCallback('TimeCallback');
 
// Set the labels and minor ticks.
$graph->xaxis->scale->ticks->Set(7200,1800);
 
// Adjust the legend position
$graph->legend->SetLayout(LEGEND_HOR);
$graph->legend->Pos(0.05,0.97,"left","bottom");
 
// $linehp = new LinePlot($papphp,$timestp);
// $linehp->SetColor('red');
// $linehp->SetFillColor("red@0.4");
// $linehp->SetLegend("HP");
 
$linehc = new LinePlot($papphc,$timestp);
$linehc->SetColor('green');
$linehc->SetFillColor("green@0.4");
$linehc->SetLegend("Production Solaire");
 
// $graph->Add($linehp);
$graph->Add($linehc);
 
$papp_actuelle=$papphp[count($papphp) -1] + $papphc[count($papphc) -1];
$txt=new Text("Puissance actuelle: $papp_actuelle Watts", 250, 370);
$txt->SetColor("gray7");
$graph->AddText($txt);
 
$graph->Stroke();
?>


En espérant que ça aide :sun:


Retourner vers « Calcul de production »