[TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
+6
zoeilvert
.vince
Cameleon
Fabien
Mido
Fred.Leudon
10 participants
Page 2 sur 4
Page 2 sur 4 • 1, 2, 3, 4
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Fabien a dégainé plus vite que moi....
Arghhhh tu m'as eu coyote ;-)
Arghhhh tu m'as eu coyote ;-)
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Merci à vous deux, je vais regarder ça.
Fred, tu as fait un OpenEVSE si je m'abuse.
Il est basé sur quoi ?
Fred, tu as fait un OpenEVSE si je m'abuse.
Il est basé sur quoi ?
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Il est basé sur le tutoriel de .vince pour le matériel.
J'ai bricolé le soft pour l'adapter a mes besoins...
J'ai bricolé le soft pour l'adapter a mes besoins...
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Pb de compilation
Bonjour,
Merci pour ce magnifique tuto, il est génial,
cependant, je suis débutant en programmation et je rencontre un problème à la compilation, j'utilise bien la commande :
gcc -o teleinfoserial_mysql teleinfo_mysql.c `mysql_config --cflags --libs
j'ai juste ">" qui apparait et rien d'autre, est-ce normal ?
Merci de votre retour.
Xavier
Merci pour ce magnifique tuto, il est génial,
cependant, je suis débutant en programmation et je rencontre un problème à la compilation, j'utilise bien la commande :
gcc -o teleinfoserial_mysql teleinfo_mysql.c `mysql_config --cflags --libs
j'ai juste ">" qui apparait et rien d'autre, est-ce normal ?
Merci de votre retour.
Xavier
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Bonjour,
J'ai trouvé grâce à un ami le problème lors de la compilation ! il y avait une simple quote (') devant mysql_config.
Par contre, une fois cette erreur réparée, lors de la compilation de nouvelles erreurs apparaissent auxquelles nous ne trouvons pas de solutions, les voici ;
root@raspberrypi:/var/teleinfoserial# gcc -o teleinfoserial_mysql.c teleinfo_mysql.c mysql_config --cflags --libs
gcc: error: teleinfo_mysql.c: Aucun fichier ou dossier de ce type
gcc: error: mysql_config: Aucun fichier ou dossier de ce type
gcc: error: unrecognized command line option ‘--cflags’
gcc: error: unrecognized command line option ‘--libs’
gcc: fatal error: no input files
compilation terminated.
Quelqu'un aurait-il la solution au problème ? sachant que j'ai respecté scrupuleusement le descriptif.
Par avance, je vous remercie.
Xavier
J'ai trouvé grâce à un ami le problème lors de la compilation ! il y avait une simple quote (') devant mysql_config.
Par contre, une fois cette erreur réparée, lors de la compilation de nouvelles erreurs apparaissent auxquelles nous ne trouvons pas de solutions, les voici ;
root@raspberrypi:/var/teleinfoserial# gcc -o teleinfoserial_mysql.c teleinfo_mysql.c mysql_config --cflags --libs
gcc: error: teleinfo_mysql.c: Aucun fichier ou dossier de ce type
gcc: error: mysql_config: Aucun fichier ou dossier de ce type
gcc: error: unrecognized command line option ‘--cflags’
gcc: error: unrecognized command line option ‘--libs’
gcc: fatal error: no input files
compilation terminated.
Quelqu'un aurait-il la solution au problème ? sachant que j'ai respecté scrupuleusement le descriptif.
Par avance, je vous remercie.
Xavier
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Je regarde ça dans la soirée et je te dis ce qu'il en est...
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Il faut les 3 fichiers suivants dans ton répertoire :
teleinfo_mysql.c
hr_time.h
ht_time.c
pour la compil, c'est bien cette ligne
Explication :
gcc = appel au compilateur c
-o (output) sortie
teleinfoserial_mysql = nom du programme à compiler
teleinfo_mysql.c = source
`mysql_config --cflags --libs` = options pour le compilateur
ne pas oublier les anti-cotes (alt-gr + 7 sur un clavier pc AZERTY)
Si cela ne compile pas, je ne sais pas comment mieux t'aider ....
teleinfo_mysql.c
- Code:
/* teleinfo_mysql.c */
/* Version pour PC et wrt54gl */
/* Lecture données Téléinfo et enregistre données sur base mysql vesta si ok sinon dans fichier csv. */
/* Connexion par le port série du Wrt54gl (Console désactivée dans inittab.) */
/* Vérification checksum données téléinfo et boucle de 3 essais si erreurs. */
/* Par domos78 at free point fr */
// Compilation :
// gcc -o teleinfoserial_mysql teleinfo_mysql.c `mysql_config --cflags --libs`
/*
Paramètres à adapter:
- Port série à modifier en conséquence avec SERIALPORT.
- Nombre de valeurs à relever: NB_VALEURS + tableaux "etiquettes" et "poschecksum" à modifier selon abonnement (ici triphasé heures creuses).
- Paramètres Mysql (Serveur, Base, table et login/password)
- Autorisé le serveur MySql à accepter les connexions distantes pour le Wrt54gl.
Compilation PC:
- gcc -Wall teleinfoserial_mysql.c -o teleinfoserial_mysql -lmysqlclient
*/
//-----------------------------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <syslog.h>
#include <termios.h>
#include <sys/fcntl.h>
#include <sys/types.h>
#include <mysql.h>
// Define port serie
#define BAUDRATE B1200
#define SERIALPORT "/dev/ttyAMA0"
// Define mysql
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_DB "erdf_teleinfo"
#define MYSQL_TABLE "T_TELEINFO"
#define MYSQL_TABLE2 "T_INFO"
#define MYSQL_LOGIN "******"
#define MYSQL_PWD "********"
// Fichier local au Wrt4gl/PC + fichier trame pour debug.
#define DATACSV "/tmp/teleinfosql.csv"
#define TRAMELOG "/tmp/teleinfotrame."
// Active mode debug.
//#define DEBUG
//-----------------------------------------------------------------------------
// Déclaration pour le port série.
int fdserial ;
struct termios termiosteleinfo ;
// Déclaration pour les données.
char ch[2] ;
char car_prec ;
char message[512] ;
char* match;
int id ;
char datateleinfo[512] ;
char datateleinfo2[512] ;
// Constantes/Variables à changées suivant abonnement.
#define NB_VALEURS 12 // Nombre de valeurs à relever, voir tableau "etiquettes".
char etiquettes[NB_VALEURS][16] = {"ADCO", "OPTARIF", "ISOUSC", "HCHP", "HCHC", "PTEC", "IINST", "IMAX", "PAPP", "HHPHC", "MOTDETAT", "ADPS"} ;
// Fin Constantes/variables à changées suivant abonnement.
/*
// Constantes/Variables à changées suivant abonnement, Nombre de valeurs, voir tableau "etiquettes", 20 pour abonnement tri heures creuse.
#define NB_VALEURS 20
char etiquettes[NB_VALEURS][16] = {"ADCO", "OPTARIF", "ISOUSC", "HCHP", "HCHC", "PTEC", "IINST1", "IINST2", "IINST3", "IMAX1", "IMAX2", "IMAX3", "PMAX", "PAPP", "HHPHC", "MOTDETAT", "PPOT", "ADIR1", "ADIR2" ,"ADIR3"} ;
// Fin Constantes/variables à changées suivant abonnement.
*/
char valeurs[NB_VALEURS][18] ;
char checksum[255] ;
int res ;
int no_essais = 1 ;
int nb_essais = 100 ;
int erreur_checksum = 0 ;
// Déclaration pour la date.
time_t td;
struct tm *dc;
char sdate[12];
char sheure[10];
char timestamp[11];
char oldtimestamp[11];
struct timeval tv1;
struct timeval tv2;
/*------------------------------------------------------------------------------*/
/* Init port rs232 */
/*------------------------------------------------------------------------------*/
int initserie(void)
// Mode Non-Canonical Input Processing, Attend 1 caractère ou time-out(avec VMIN et VTIME).
{
int device ;
// Ouverture de la liaison serie (Nouvelle version de config.)
if ( (device=open(SERIALPORT, O_RDWR | O_NOCTTY)) == -1 )
{
syslog(LOG_ERR, "Erreur ouverture du port serie %s !", SERIALPORT);
exit(1) ;
}
tcgetattr(device,&termiosteleinfo) ; // Lecture des parametres courants.
cfsetispeed(&termiosteleinfo, BAUDRATE) ; // Configure le débit en entrée/sortie.
cfsetospeed(&termiosteleinfo, BAUDRATE) ;
termiosteleinfo.c_cflag |= (CLOCAL | CREAD) ; // Active réception et mode local.
// Format série "7E1"
termiosteleinfo.c_cflag |= PARENB ; // Active 7 bits de donnees avec parite pair.
termiosteleinfo.c_cflag &= ~PARODD ;
termiosteleinfo.c_cflag &= ~CSTOPB ;
termiosteleinfo.c_cflag &= ~CSIZE ;
termiosteleinfo.c_cflag |= CS7 ;
termiosteleinfo.c_iflag |= (INPCK | ISTRIP) ; // Mode de control de parité.
termiosteleinfo.c_cflag &= ~CRTSCTS ; // Désactive control de flux matériel.
termiosteleinfo.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG) ; // Mode non-canonique (mode raw) sans echo.
termiosteleinfo.c_iflag &= ~(IXON | IXOFF | IXANY | ICRNL) ; // Désactive control de flux logiciel, conversion 0xOD en 0x0A.
termiosteleinfo.c_oflag &= ~OPOST ; // Pas de mode de sortie particulier (mode raw).
termiosteleinfo.c_cc[VTIME] = 80 ; // time-out à ~8s.
termiosteleinfo.c_cc[VMIN] = 0 ; // 1 car. attendu.
tcflush(device, TCIFLUSH) ; // Efface les données reçues mais non lues.
tcsetattr(device,TCSANOW,&termiosteleinfo) ; // Sauvegarde des nouveaux parametres
return device ;
}
/*------------------------------------------------------------------------------*/
/* Lecture données téléinfo sur port série */
/*------------------------------------------------------------------------------*/
void LiTrameSerie(int device)
{
// (0d 03 02 0a => Code fin et début trame)
tcflush(device, TCIFLUSH) ; // Efface les données non lus en entrée.
message[0]='\0' ;
memset(valeurs, 0x00, sizeof(valeurs)) ;
do
{
car_prec = ch[0] ;
res = read(device, ch, 1) ;
if (! res)
{
syslog(LOG_ERR, "Erreur pas de réception début données Téléinfo !\n") ;
close(device);
exit(1) ;
}
}
while ( ! (ch[0] == 0x02 && car_prec == 0x03) ) ; // Attend code fin suivi de début trame téléinfo .
do
{
res = read(device, ch, 1) ;
if (! res)
{
syslog(LOG_ERR, "Erreur pas de réception fin données Téléinfo !\n") ;
close(device);
exit(1) ;
}
ch[1] ='\0' ;
strcat(message, ch) ;
}
while (ch[0] != 0x03) ; // Attend code fin trame téléinfo.
}
/*------------------------------------------------------------------------------*/
/* Test checksum d'un message (Return 1 si checkum ok) */
/*------------------------------------------------------------------------------*/
int checksum_ok(char *etiquette, char *valeur, char checksum)
{
unsigned char sum = 32 ; // Somme des codes ASCII du message + un espace
int i ;
for (i=0; i < strlen(etiquette); i++) sum = sum + etiquette[i] ;
for (i=0; i < strlen(valeur); i++) sum = sum + valeur[i] ;
sum = (sum & 63) + 32 ;
if ( sum == checksum) return 1 ; // Return 1 si checkum ok.
#ifdef DEBUG
syslog(LOG_INFO, "Checksum lu:%02x calculé:%02x", checksum, sum) ;
#endif
return 0 ;
}
/*------------------------------------------------------------------------------*/
/* Recherche valeurs des étiquettes de la liste. */
/*------------------------------------------------------------------------------*/
int LitValEtiquettes()
{
int id ;
erreur_checksum = 0 ;
for (id=0; id<NB_VALEURS; id++)
{
if ( (match = strstr(message, etiquettes[id])) != NULL)
{
sscanf(match, "%s %s %s", etiquettes[id], valeurs[id], checksum) ;
if ( strlen(checksum) > 1 ) checksum[0]=' ' ; // sscanf ne peux lire le checksum à 0x20 (espace), si longueur checksum > 1 donc c'est un espace.
if ( ! checksum_ok(etiquettes[id], valeurs[id], checksum[0]) )
{
syslog(LOG_INFO, "Donnees teleinfo [%s] corrompues (essai %d) !\n", etiquettes[id], no_essais) ;
erreur_checksum = 1 ;
return 0 ;
}
}
}
#ifdef DEBUG
printf("----------------------\n") ; for (id=0; id<NB_VALEURS; id++) printf("%s='%s'\n", etiquettes[id], valeurs[id]) ;
#endif
return 1 ;
}
/*------------------------------------------------------------------------------*/
/* Test si dépassement intensité */
/*------------------------------------------------------------------------------*/
int DepasseCapacite()
{
// Test sur les 3 phases (étiquette ADIR1, ADIR2, ADIR3) à remplacer par ADPS pour monophasé.
if (strlen(valeurs[12]))
{
syslog(LOG_INFO, "Dépassement d'intensité: ADPS='%s'!", valeurs[12]) ;
return 1 ;
}
return 0 ;
}
/*------------------------------------------------------------------------------*/
/* Ecrit les données teleinfo dans base mysql */
/*------------------------------------------------------------------------------*/
int writemysqlteleinfo(MYSQL mysql , char data[])
{
char query[512] ;
// Maj T_INFO
sprintf(query, "INSERT INTO %s (DATE, HEURE , ADCO, OPTARIF, ISOUSC, HCHP, HCHC, PTEC, IINST, IMAX, PAPP, HHPHC, MOTDETAT, ADPS) VALUES (%s)", MYSQL_TABLE, data);
if(mysql_query(&mysql, query))
{
syslog(LOG_ERR, "Erreur INSERT %d: \%s \n", mysql_errno(&mysql), mysql_error(&mysql));
//mysql_close(&mysql);
return 0 ;
}
return 1 ;
}
/*------------------------------------------------------------------------------*/
/* Ecrit les donn�es teleinfo dans base mysql */
/*------------------------------------------------------------------------------*/
int writemysqlteleinfo2(MYSQL mysql , char data2[])
{
char query[512] ;
// Maj T_INFO
sprintf(query, "DELETE FROM %s", MYSQL_TABLE2);
if(mysql_query(&mysql, query))
{
syslog(LOG_ERR, "Erreur INSERT %d: \%s \n", mysql_errno(&mysql), mysql_error(&mysql));
//mysql_close(&mysql);
return 0 ;
}
sprintf(query, "INSERT INTO %s (TIMESTAMP, IINST, ISOUSC , PAPP , IMAX , HHPHC , PTEC ) VALUES (%s)", MYSQL_TABLE2, data2);
if(mysql_query(&mysql, query))
{
syslog(LOG_ERR, "Erreur INSERT %d: \%s \n", mysql_errno(&mysql), mysql_error(&mysql));
//mysql_close(&mysql);
return 0 ;
}
return 1 ;
}
/*------------------------------------------------------------------------------*/
/* Ecrit les données teleinfo dans fichier DATACSV */
/*------------------------------------------------------------------------------*/
void writecsvteleinfo(char data[])
{
/* Ouverture fichier csv */
FILE *datateleinfo ;
if ((datateleinfo = fopen(DATACSV, "a")) == NULL)
{
syslog(LOG_ERR, "Erreur ouverture fichier teleinfo %s !", DATACSV) ;
exit(1);
}
fprintf(datateleinfo, "%s\n", data) ;
fclose(datateleinfo) ;
}
#ifdef DEBUG
/*------------------------------------------------------------------------------*/
/* Ecrit la trame teleinfo dans fichier si erreur (pour debugger) */
/*------------------------------------------------------------------------------*/
void writetrameteleinfo(char trame[], char ts[])
{
char nomfichier[255] = TRAMELOG ;
strcat(nomfichier, ts) ;
FILE *teleinfotrame ;
if ((teleinfotrame = fopen(nomfichier, "w")) == NULL)
{
syslog(LOG_ERR, "Erreur ouverture fichier teleinfotrame %s !", nomfichier) ;
exit(1);
}
fprintf(teleinfotrame, "%s", trame) ;
fclose(teleinfotrame) ;
}
#endif
/*------------------------------------------------------------------------------*/
/* Main */
/*------------------------------------------------------------------------------*/
int main(int argc, char *argv[])
{
// Faire le test sur le PID pour éviter lancement en double
// get this process pid
pid_t pid = getpid();
// compose a bash command that:
// check if another process with the same name as yours
// but with different pid is running
char command[255];
sprintf(command, "ps -eo pid,command | grep %s | grep -v %d |grep -v grep", argv[0], pid);
syslog(LOG_INFO,command);
int isRuning = system(command);
if (isRuning == 0) {
syslog(LOG_ERR,"Another process already running. exiting.");
return 1;
}
openlog("teleinfoserial_mysql", LOG_PID, LOG_USER) ;
fdserial = initserie() ;
MYSQL mysql ;
/* INIT MYSQL AND CONNECT ----------------------------------------------------*/
if(!mysql_init(&mysql))
{
syslog(LOG_ERR, "Erreur: Initialisation MySQL impossible !") ;
exit(0) ;
}
if(!mysql_real_connect(&mysql, MYSQL_HOST, MYSQL_LOGIN, MYSQL_PWD, MYSQL_DB, 0, NULL, 0))
{
syslog(LOG_ERR, "Erreur connection %d: %s \n", mysql_errno(&mysql), mysql_error(&mysql));
exit(0) ;
}
gettimeofday(&tv1, NULL);
do
{
LiTrameSerie(fdserial) ;
time(&td) ; //Lit date/heure système.
dc = localtime(&td) ;
strftime(sdate,sizeof sdate,"%Y-%m-%d",dc);
strftime(sheure,sizeof sdate,"%H:%M:%S",dc);
strftime(timestamp,sizeof timestamp,"%s",dc);
if ( LitValEtiquettes() ) // Lit valeurs des étiquettes de la liste.
{
sprintf(datateleinfo2,"'%s','%s','%s','%s','%s','%s','%s'", timestamp, valeurs[6], valeurs[2], valeurs[8], valeurs[7], valeurs[9], valeurs[5]);
gettimeofday(&tv2, NULL);
writemysqlteleinfo2(mysql, datateleinfo2);
if (( tv2.tv_sec - tv1.tv_sec ) >= 30 ) {
sprintf(datateleinfo,"'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s'", sdate, sheure, valeurs[0], valeurs[1], valeurs[2], valeurs[3], valeurs[4], valeurs[5], valeurs[6], valeurs[7], valeurs[8], valeurs[9], valeurs[10], valeurs[11]) ;
writemysqlteleinfo(mysql, datateleinfo);
gettimeofday(&tv1, NULL);
}
}
no_essais++ ;
}
while ( 1 );
//while ( (erreur_checksum) && (no_essais <= nb_essais) ) ;
mysql_close(&mysql);
close(fdserial) ;
closelog() ;
exit(0) ;
}
hr_time.h
- Code:
#ifndef __HR_TIME_H
#define __HR_TIME_H
#ifdef WIN32
#include <windows.h>
typedef struct {
LARGE_INTEGER start;
LARGE_INTEGER stop;
} stopWatch;
class CStopWatch {
private:
stopWatch timer;
LARGE_INTEGER frequency;
double LIToSecs( LARGE_INTEGER & L);
public:
CStopWatch();
void startTimer( );
void stopTimer( );
double getElapsedTime();
};
#else
#include <sys/time.h>
typedef struct {
timeval start;
timeval stop;
} stopWatch;
class CStopWatch {
private:
stopWatch timer;
public:
CStopWatch() {};
void startTimer( );
void stopTimer( );
double getElapsedTime();
};
#endif
#endif
ht_time.c
- Code:
#include <cstdio> // NULL
#include "hr_time.h"
#ifdef WIN32
double CStopWatch::LIToSecs( LARGE_INTEGER & L) {
return ((double)L.QuadPart /(double)frequency.QuadPart);
}
CStopWatch::CStopWatch(){
timer.start.QuadPart=0;
timer.stop.QuadPart=0;
QueryPerformanceFrequency( &frequency );
}
void CStopWatch::startTimer( ) {
QueryPerformanceCounter(&timer.start);
}
void CStopWatch::stopTimer( ) {
QueryPerformanceCounter(&timer.stop);
}
double CStopWatch::getElapsedTime() {
LARGE_INTEGER time;
time.QuadPart = timer.stop.QuadPart - timer.start.QuadPart;
return LIToSecs( time) ;
}
#else
void CStopWatch::startTimer( ) {
gettimeofday(&(timer.start),NULL);
}
void CStopWatch::stopTimer( ) {
gettimeofday(&(timer.stop),NULL);
}
double CStopWatch::getElapsedTime() {
timeval res;
timersub(&(timer.stop),&(timer.start),&res);
return res.tv_sec + res.tv_usec/1000000.0; // 10^6 uSec per second
}
#endif
pour la compil, c'est bien cette ligne
- Code:
gcc -o teleinfoserial_mysql teleinfo_mysql.c `mysql_config --cflags --libs`
Explication :
gcc = appel au compilateur c
-o (output) sortie
teleinfoserial_mysql = nom du programme à compiler
teleinfo_mysql.c = source
`mysql_config --cflags --libs` = options pour le compilateur
ne pas oublier les anti-cotes (alt-gr + 7 sur un clavier pc AZERTY)
Si cela ne compile pas, je ne sais pas comment mieux t'aider ....
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Bonjour et merci,
il semblerait que ça ait fonctionné, je n'ai pas eu de message d'erreur lors de la compilation, ni d'autre message d'ailleurs comme quoi la compilation s'est bien passée.
Est-ce normal ?
Encore merci pour ton aide précieuse
Xavier
il semblerait que ça ait fonctionné, je n'ai pas eu de message d'erreur lors de la compilation, ni d'autre message d'ailleurs comme quoi la compilation s'est bien passée.
Est-ce normal ?
Encore merci pour ton aide précieuse
Xavier
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Si la compilation s'est bien passée, tu devrais avoir un fichier en plus dans ton répertoire ....
Il faut le rendre exécutable et le lancer
Il faut le rendre exécutable et le lancer
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
C'est ce que j'ai fait et rien n’apparaît
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Pas trop d'idée, as tu bien suivi le tutoriel et indiqué le user et le mot de passe de l'utilisateur mysql?
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
oui, tout suivi à la lettre, refais 3 fois avec les bons identifiants MySQL...
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Si je puis me permettre, évite les caractères accentués sans les URL (renomme ton dossier téléinfo en teleinfo)
As tu installé phpmyadmin?
Si oui, regarde si les tables se remplissent bien?
As tu installé phpmyadmin?
Si oui, regarde si les tables se remplissent bien?
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Je n'ai pas de caractères accentués dans les noms de mes fichiers
J'ai bien installé PhpMyAdmin, mais rien ne vient dans les tables T_INFO et T_TELEINFO (je les ai créé en suivant le tuto que tu as fait)
J'ai bien installé PhpMyAdmin, mais rien ne vient dans les tables T_INFO et T_TELEINFO (je les ai créé en suivant le tuto que tu as fait)
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Je n'ai pas de caractères accentués dans les noms de mes fichiers
Pourtant il semble que tu as mis des accents dans l'adresse que tu as tapée dans la barre d'adresse de ton navigateur (192.168.1.250/Téléinfo/).
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
modifiée mais ça ne change rien
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Essaye de regarder les logs de mysql (/var/log/...)
Il y aura peut être un message d'erreur qui permettra de comprendre ce qui se passe.
Regarde aussi le syslog
Il y aura peut être un message d'erreur qui permettra de comprendre ce qui se passe.
Regarde aussi le syslog
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Effectivement, ça m'a permis de voir que je n'avais pas saisi les infos de connexion à ma base de données dans teleinfo_mysql.c
De plus, j'ai ces erreurs qui apparaissent :
Aug 9 13:56:01 raspberrypi teleinfoserial_mysql[13300]: Erreur pas de réception fin données Téléinfo !
et
Aug 9 14:03:05 raspberrypi teleinfoserial_mysql: ps -eo pid,command | grep ./teleinfoserial_mysql | grep -v 13353 |grep -v grep
Que veulent elles dire ?
en tout cas, merci pour ton aide précieuse, je suis novice...
De plus, j'ai ces erreurs qui apparaissent :
Aug 9 13:56:01 raspberrypi teleinfoserial_mysql[13300]: Erreur pas de réception fin données Téléinfo !
et
Aug 9 14:03:05 raspberrypi teleinfoserial_mysql: ps -eo pid,command | grep ./teleinfoserial_mysql | grep -v 13353 |grep -v grep
Que veulent elles dire ?
en tout cas, merci pour ton aide précieuse, je suis novice...
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Pas de souci, on est tous passé par la un jour ;-)
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
La premiere ligne signifie qu'il n'y a pas de données à lire sur le port série.
Quel est le montage que tu utilises pour récupérer les infos et comment est-ce branché?
Fais quelques photos de ton montage
Quel est le montage que tu utilises pour récupérer les infos et comment est-ce branché?
Fais quelques photos de ton montage
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
les données sont bien lues par le port série, j'en veux pour preuve un crontab qui tourne dessus depuis le 28 juillet et qui me ramène des données dans ma bdd, par conséquent, le problème ne vient pas de là enfin il me semble...
Pour ne pas polluer ce forum, ne pourrions nous pas échanger via nos messageries perso ?
Pour ne pas polluer ce forum, ne pourrions nous pas échanger via nos messageries perso ?
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Et dans le .c, as tu bien renseigné le nom du port série sur lequel lire?
Le port série ne peut être ouvert que pas un seul processus à la fois, est ce que ton contrab est bien stoppé ?
As tu exécuté le programme en direct ?
Pour d'autres éventuels utilisateurs du tutoriel, je pense qu'il est préférable de continuer sur le forum.
Une fois la solution trouvée, je demanderai à un modérateur de faire du ménage en supprimant les posts inutiles
Le port série ne peut être ouvert que pas un seul processus à la fois, est ce que ton contrab est bien stoppé ?
As tu exécuté le programme en direct ?
- Code:
./teleinfoserial_mysql
Pour d'autres éventuels utilisateurs du tutoriel, je pense qu'il est préférable de continuer sur le forum.
Une fois la solution trouvée, je demanderai à un modérateur de faire du ménage en supprimant les posts inutiles
Fred.Leudon- Messages : 4816
Date d'inscription : 11/12/2012
Age : 50
Localisation : Leudon-en-Brie, Seine & Marne
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
même si je comprend pas grand chose, çà m'intéresse. Restez là! Merci pour vos contributions.Pour ne pas polluer ce forum, ne pourrions nous pas échanger via nos messageries perso ?
_________________
jch- Modérateur
- Messages : 5212
Date d'inscription : 16/03/2013
Age : 53
Localisation : Le Touvet 38660
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Ok, pas de souci, je fais participer tout le monde, bien au cntraire, c'est comme ça qu'on apprend...
je n'avais pas stoppé mon crontab, c'est fait maintenant, mais ça ne change rien, j'ai toujours l’erreur suivante dans le syslog
Aug 10 09:16:00 raspberrypi teleinfoserial_mysql: ps -eo pid,command | grep ./teleinfoserial_mysql | grep -v 20823 |grep -v grep
que signifie t elle ? de plus, ma bdd ne se remplit toujours pas
je n'avais pas stoppé mon crontab, c'est fait maintenant, mais ça ne change rien, j'ai toujours l’erreur suivante dans le syslog
Aug 10 09:16:00 raspberrypi teleinfoserial_mysql: ps -eo pid,command | grep ./teleinfoserial_mysql | grep -v 20823 |grep -v grep
que signifie t elle ? de plus, ma bdd ne se remplit toujours pas
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Tu me demandes :"As tu exécuté le programme en direct ?
CODE:
./teleinfoserial_mysql
"
je le fais et rien ne se passe en console ...
ce n'est pas normal, non ?
CODE:
./teleinfoserial_mysql
"
je le fais et rien ne se passe en console ...
ce n'est pas normal, non ?
Xav33390- Messages : 21
Date d'inscription : 03/08/2016
Re: [TUTO] Branchement Télé-information ERDF et monitoring borne OpenEVSE
Es-tu sûr que cette ligne est seule, rien de lié, juste avant ou après ?
Ça ressemble à une commande (assez crade, d'ailleurs) ayant pour but de vérifier que "./teleinfoserial_mysql" ne tourne pas déjà.
Ça ressemble à une commande (assez crade, d'ailleurs) ayant pour but de vérifier que "./teleinfoserial_mysql" ne tourne pas déjà.
Page 2 sur 4 • 1, 2, 3, 4
Sujets similaires
» Borne OPENEVSE / Zoé révisée / Inter-Diff qui saute si charge > 22A
» [TUTO] Créer une borne EVSE pour 360€
» Pré-tuto : passer une borne Schneider EV Link NCA11130 en 11 kW triphasé
» ERDF - Pénurie d'électricité
» Le CRD Câble de Recharge de Davide R :)
» [TUTO] Créer une borne EVSE pour 360€
» Pré-tuto : passer une borne Schneider EV Link NCA11130 en 11 kW triphasé
» ERDF - Pénurie d'électricité
» Le CRD Câble de Recharge de Davide R :)
Page 2 sur 4
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum