Skip to content
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Community Forum

SbastienGa99566S

SbastienGa99566

@SbastienGa99566
About
Posts
3
Topics
1
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent

  • PitInfo 1.5 + Arduino Uno + LibTeleinfo + mode Standard
    SbastienGa99566S SbastienGa99566

    @Charles J'ai testé sur le port 0/RX et j'obtiens la même chose.

    Ethernet Teleinfo

  • PitInfo 1.5 + Arduino Uno + LibTeleinfo + mode Standard
    SbastienGa99566S SbastienGa99566

    @Charles
    Merci pour votre réponse.
    Ca fonctionnait bien avec le mode historique mais c'était effectivement en 1200baud...

    Ethernet Teleinfo

  • PitInfo 1.5 + Arduino Uno + LibTeleinfo + mode Standard
    SbastienGa99566S SbastienGa99566

    Bonjour,

    J'ai acheté un PitInfo 1.5 que j'ai branché sur mon Arduino Uno et sur ma TIC afin d'exploiter les données de mon Linky en mode standard.
    Je reçois bien des données mais elles semblent incohérentes / mal interprété par la librairie LibTeleInfo.
    J'ai suivi les infos du site https://hallard.me/pitinfov12-light/, j'ai connecté le TX du pitinfo sur le port 3.
    Depuis Arduino IDE, je me suis appuyé sur l'exemple de LibTeleInfo Arduino_Softserial_Blink.
    Dans mon serial monitor, il m'affiche que les frame sont toujours les mêmes.
    quand j'affiche les Frames, j'obtiens cela :

    107874798582709484893813107874798582704349948489661310807479858270434994848484852484849324854484852484850325050484852484849327879788584737669327879788584737669327879788584737669327879788584737669327879788584737669327879788584737669327879788584737669327879788584737669946133210656883679485149575554485051575150958131086847367948509741310686584699725053485148544954484848509958131078718470932323232328469778079323232323232970131076846582709323232327280323266766985323232329431310696583849485449525154535349946131069658370484994849575355505755499751310696583704850948515155544856574897113106965837048519484850525656485654972131069658370485294848515355525250579711310696583704853948484952565049515095913106965837048549484848535356485251964131069658370485594848484848484848489401310696583704856948484848484848484894113106965837048579484848484848484213106965837049484848484848489341310696583684894849535054574969131069658368509505656495651965106965836848519485649494957968106965836848529485749495349962107382778349948485048131073828350948484713107382775194849949108582778349950519641085827783509515066131085827751951539701080826970949539131080677980953995131083738384948485454988108373788384834994848554991310837378838350484853577013108373788384519485051549131083776588837897253484854525148519485250579131083776583784995053514854485054569515056913108377658378972504851484950505255950564995210837765888351950535148544851504848485355514413108377658883784597253485153485150524948575251993108377658883784549972534851534851554894852485677131083778883504597250485153494955539484855579013108377658883514549725048514848515052948535648913106767657895053485154494848489485452913106767658345497250535148545351484894957569131085777949950534848545448484895149913108577795097250485154494848489505194610857779899725348515449484848950539491083847169948516567484991310778349980653268693232323232323277838371693232323232323291310808277957514849575553565049913108269766573948489661078846582704850979107874798570948938107874798570439489661080747985827043499484852484932484848484850505048524849327878858473693279788473693278788584766978797885847669787978847376327879788473693279788473766978797884736991332106568836794851495755544850515751509581310868473679485097413106865846997250534851485449544848485199591310787184709323232323284697780793232323232329701310768465827093232323272803232667669853232323294313106965838494854495251545353499461310696583704849948495753555057554997513106965837048509485151555448565748971131069658370485194848505256564856549721310696583704852948485153555252505797113106965837048539484952564951505913106965837048484853565251641310696583705594848484848401310696583704856948484848489411069658370579484848484848913106965837094848484848483413106965836894953505457499691069658368485049564951496513106965834851948564954575696810696583684848574949514996210738277839509131073827783948489131073827783948499131085827749519641085827783505051966108582778351951537013108082709495369131080677985539513108373788483955549131083737883844994852569131083737883845094848539701083737883848394857701310837765888372534848545251484857505791310837765884995053514848515054569485691310837765837850725053514849505052554850565691083776583789725348485453515048953515513108377658883784597250484853515350529485299310837765888378494995053484848515548948505256913108377658883785049950534848535353951485791310837765887851499725348515348515052494853564879131067676583789505348485454484848545291310676765784549725048515449534848948499371085777989499505351485454484895051943108577895072505351484954484895051913108577519505351484954484895053913108384716994849516752489821310778349965833269323232323232323269836571693232323232329608277495748524957555352509611310826973834848966131078848270485091078747982709489131078747982704394896610807479827049948484852484948544852485032504848327878857376327879787669787985847369327878857376327879787369327978847369327879788473693279788584766946133
    2s	FRAME -> SAME AS PREVIOUS
    DATA
    0 - =
    21065688367948514957555448505157515095813108684736794850974131068658469972505348514854495448484853996113107871847093232323232846977807932323232323297013107684658270932323232728032326676698532323232943131069658384948544952515453535094713106965837048499484957535550575549975131069658370485094851515554485657499721310696583704851948485052565648565497213106965837048529484851535552525057971131069658370485394848495256504950913106965837054484853534852964131069658370489484848484891310696583705694848484848484113106570489484848484848942106965834948484848484893410696583684994852545757969106965836848509565649514965131069658368514848494957968131069656848948485749495150631310738277834994850913107382778394848947107382778351948494913108549950499131085827750950511310858277519505391310808269495391310806779859499510837378838483484856569901083737883848348535396813108378848394848535770108378838451948505168108377658883787253484854525148519485250967131083658883789725348515448505456948566013108377658378972534851545050505294850564952131083778883519505351484853515048948534413108377658883784997253484853515350499525193131083776588837845497250485148485155489525691310837765888378504995053514853564994848559901083776588837845497250485148535153948545697910676765837895053514849544848489575269131067678378499725348485453514848948494956371310857789497250535148495448484895149913108577798950972504851544948484895051985798997253485154494848489515349131083847169495167524991310778349980836869323232323232776983657169323232323232913108082779495148524954535652499131082697665484866131078848270950910787479858294893810787479858243494848661310807485824349484848483248544852485032504852484879788473763278788576327878857376693278788573766932797885737632787885737669787973693279788473769463
    

    Je vous joins mon code source.
    Est-ce qu'il y a quelque chose à modifier pour que le mode standard fonctionne ?

    Merci !
    Sébastien

    
    #include <string.h>
    #include <SoftwareSerial.h>
    #include "LibTeleinfo.h"
    
    /****************************** Defines *******************************/
    
    /****************************** Constants *****************************/
    #define TIC_RX_PIN      3
    #define TIC_TX_PIN      4
    
    #define LEDPIN 13
    
    // Pour clignotement LED asynchrone
    unsigned long blinkLed  = 0;
    uint8_t       blinkDelay= 0;
    
    const char HEURES_PLEINES_JOUR_ROUGE[8] = "HPJR";
    const char HEURES_CREUSES_JOUR_ROUGE[8] = "HCJR";
    const char HEURES_PLEINES_JOUR_BLANC[8] = "HPJW";
    const char HEURES_CREUSES_JOUR_BLANC[8] = "HCJW";
    const char HEURES_PLEINES_JOUR_BLEU[8]  = "HPJB";
    const char HEURES_CREUSES_JOUR_BLEU[8]  = "HCJB";
    
    const char PERIODE_TARIFAIRE[8] = "NGTF";
    
    const int PIN_RELAIS_CIRCULATEUR_RADIATEURS = 5;
    const int PIN_RELAIS_PAC = 6;
    const int PIN_RELAIS_CIRCULATEUR_PLANCHER_CHAUFFANT = 7;
    
    /************************* Global variables ***************************/
    
    
    
    
    /************************* Object instanciation ***********************/
    SoftwareSerial Serial10(TIC_RX_PIN, TIC_TX_PIN);
    TInfo tinfo;
    
    /****************************  Routines  ******************************/
    void activerChauffage()
    {
      Serial.println(F("ACTIVATION chauffage !"));
      digitalWrite(PIN_RELAIS_CIRCULATEUR_RADIATEURS, LOW);
      digitalWrite(PIN_RELAIS_CIRCULATEUR_PLANCHER_CHAUFFANT, LOW);
      digitalWrite(PIN_RELAIS_PAC, LOW);
    }
    
    void desactiverChauffage()
    {
      Serial.println(F("DESACTIVATION chauffage !"));
      digitalWrite(PIN_RELAIS_CIRCULATEUR_RADIATEURS, HIGH);
      digitalWrite(PIN_RELAIS_CIRCULATEUR_PLANCHER_CHAUFFANT, HIGH);
      digitalWrite(PIN_RELAIS_PAC, HIGH);
    }
    
     /* ======================================================================
    Function: printUptime 
    Purpose : print pseudo uptime value
    Input   : -
    Output  : - 
    Comments: compteur de secondes basique sans controle de dépassement
              En plus SoftwareSerial rend le compteur de millis() totalement
              A la rue, donc la precision de ce compteur de seconde n'est
              pas fiable du tout, dont acte !!!
    ====================================================================== */
    void printUptime(void)
    {
      Serial.print(millis()/1000);
      Serial.print(F("s\t"));
    }
    
    /******************************  Setup  *******************************/
    void setup()
      {
        // Configure Teleinfo Soft serial 
        Serial.println(F("Set Baud"));
        Serial.begin(115200);
        Serial.print(F("TIC RX = "));
        Serial.println(TIC_RX_PIN);
        Serial10.begin(9600);
    
        // Init teleinfo
        tinfo.init();
    
        // Attacher les callbacks dont nous avons besoin
        tinfo.attachADPS(ADPSCallback);
        tinfo.attachData(DataCallback);
        tinfo.attachNewFrame(NewFrame);
        tinfo.attachUpdatedFrame(UpdatedFrame);
    
        pinMode(PIN_RELAIS_CIRCULATEUR_RADIATEURS, OUTPUT);
        pinMode(PIN_RELAIS_CIRCULATEUR_PLANCHER_CHAUFFANT, OUTPUT);
        pinMode(PIN_RELAIS_PAC, OUTPUT);
    
        printUptime();
        Serial.println(F("PROGRAM STARTED"));
      }
    
    /****************************** Processing ****************************/
    void DataCallback(ValueList * me, uint8_t  flags)
    {
      Serial.println(F(""));
      printUptime();
    
      Serial.println(F("New data"));  
      if (flags & TINFO_FLAGS_ADDED) 
        Serial.print(F("NEW -> "));
    
      if (flags & TINFO_FLAGS_UPDATED)
        Serial.print(F("MAJ -> "));
    
      // Display values
      Serial.println(F("DATA"));
      Serial.print(me->ts);
      Serial.print(" - ");
      Serial.print(me->name);
      Serial.print("=");
      Serial.println(me->value);
    
      if (strcmp(me->name, PERIODE_TARIFAIRE) == 0)
      {
        Serial.print(F("Période tarifaire = "));
        Serial.println(me->value);
        if (strcmp(me->value, HEURES_PLEINES_JOUR_ROUGE) == 0)
          desactiverChauffage();
        else
          activerChauffage();
      }
      if ((strcmp(me->name, "SINSTS1") == 0) || (strcmp(me->name, "SINSTS2") == 0) || (strcmp(me->name, "SINSTS3") == 0))
      {
        Serial.print(F("Puissance app. Instantanée soutirée ("));
        Serial.print(me->name);
        Serial.print(F(") = "));
        Serial.println(me->value);
      }
    }
    
    /* ======================================================================
    Function: ADPSCallback 
    Purpose : called by library when we detected a ADPS on any phased
    Input   : phase number 
                0 for ADPS (monophase)
                1 for ADIR1 triphase
                2 for ADIR2 triphase
                3 for ADIR3 triphase
    Output  : - 
    Comments: should have been initialised in the main sketch with a
              tinfo.attachADPSCallback(ADPSCallback())
    ====================================================================== */
    void ADPSCallback(uint8_t phase)
    {
      Serial.println(F(""));
      printUptime();
    
      // Monophasé
      if (phase == 0 ) {
        Serial.println(F("ADPS"));
      }
      else {
        Serial.print(F("ADPS PHASE #"));
        Serial.println('0' + phase);
      }
    }
    
    /* ======================================================================
    Function: NewFrame 
    Purpose : callback when we received a complete teleinfo frame
    Input   : linked list pointer on the concerned data
    Output  : - 
    Comments: -
    ====================================================================== */
    void NewFrame(ValueList * me)
    {
      Serial.println(F(""));
      // Start short led blink
      digitalWrite(LEDPIN, HIGH);
      blinkLed = millis();
      blinkDelay = 50; // 50ms
    
      printUptime();
      Serial.println(F("FRAME -> SAME AS PREVIOUS"));
      // Display values
      Serial.println(F("DATA"));
      Serial.print(me->ts);
      Serial.print(" - ");
      Serial.print(me->name);
      Serial.print("=");
      Serial.println(me->value);
    }
    
    /* ======================================================================
    Function: UpdatedFrame 
    Purpose : callback when we received a complete teleinfo frame
    Input   : linked list pointer on the concerned data
    Output  : - 
    Comments: it's called only if one data in the frame is different than
              the previous frame
    ====================================================================== */
    void UpdatedFrame(ValueList * me)
    {
      Serial.println(F(""));
      // Start long led blink
      digitalWrite(LEDPIN, HIGH);
      blinkLed = millis();
      blinkDelay = 100; // 100ms
    
      printUptime();
      Serial.println(F("FRAME -> UPDATED"));
    }
    
    /******************************* Loop *********************************/
    void loop()
    {
      static char c;
     
      // On a reçu un caractère ?
      if ( Serial10.available() )
      {
        c = Serial10.read() ;
        Serial.print(c & 0x7F);
    
        // Gerer
        tinfo.process(c);
      }
    }
    
    

    Pilotage_SGA.ino.txt

    Ethernet Teleinfo
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups