Bonjour J'ai prévu une option de compilation dans libTeleinfo.cpp pour le mode standard , je n'ai pas pus les essayer n'ayant pas encore le linky . Je les met si ça peux aider. Vous devez avoir le mode affiché sur votre compteur pour savoir si vous êtes en mode standard(9600 bds) ou historique(1200bds). -----------------------------dans l'en-tête-------------------------------------- #define MODE_HISTORIQUE -----------------------------dans le setup()--------------------------------------- #ifdef MODE_HISTORIQUE Serial.begin(1200, SERIAL_7E1); #else Serial.begin(9600, SERIAL_7E1); //5.3.5. Couche physique document enedis Enedis-NOI-CPT_54E.pdf #endif -----------------------------dans TInfo::checkLine(char * pline) ----------- //5.3.6. Couche liaison document enedis Enedis-NOI-CPT_54E.pdf #ifdef MODE_HISTORIQUE if ( *p==' ' && ptok) { #else if ( *p=='\t' && ptok) { //reste a traiter les champs horodatés #endif --------------------------dans TInfo::calcChecksum------------------------ unsigned char TInfo::calcChecksum(char *etiquette, char *valeur) { uint8_t i; #ifdef MODE_HISTORIQUE uint8_t sum = ' '; // Somme des codes ASCII du message + un espace #else uint8_t sum = 0x09; // Somme des codes ASCII du message + un espace sum+= 0x09; #endif // avoid dead loop, always check all is fine if (etiquette && valeur) { // this will not hurt and may save our life ;-) if (strlen(etiquette) && strlen(valeur)) { while (*etiquette) sum += *etiquette++; while (*valeur) sum += *valeur++; #ifdef MODE_HISTORIQUE return ((sum & 63) + ' '); #else return ((sum & 0x3f) + 0x20); #endif } } return 0; } }