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

  1. Home
  2. Categories
  3. Téléinfo
  4. WifInfo
  5. Simulation de trames teleInfo par WinInfo.ino

Simulation de trames teleInfo par WinInfo.ino

Scheduled Pinned Locked Moved WifInfo
6 Posts 2 Posters 2.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Marco40
    wrote on last edited by
    #1

    Bonjour,
    j'ai ajouté une option pour simuler des trames teleInfo en bouclant TX serial1 vers Rx serial2.
    Je vous joint 1 fichier avec les modifications à ajouter à WinInfo.ino ainsi qu'un copie décran de l'onglet tinfo associé.
    0_1518804358183_onglet tabinfo .JPG

    [0_1518804378137_modif WinInfo.txt](Envoi en cours 100%)

    1 Reply Last reply
    • M Offline
      M Offline
      Marco40
      wrote on last edited by
      #2

      Je vous colle le code directement, problème avec un fichier.

      #define SIMUTRAMETEMPO

      #ifdef SIMUTRAMETEMPO

      //avec esp12 0.9
      //strapper ces 2 pins:
      //emission sur serial1 esp12-->GPIO2--->TXD1-->D4
      //réception sur serial après le swap-->GPIO13---->RXD2--->D7

      //fonctions calcChecksum de LibTeleinfo modifié
      unsigned char calcChecksum(char *mot)
      {
      unsigned int i;
      unsigned int sum = ' '; // Somme des codes ASCII du message + un espace

      						  // avoid dead loop, always check all is fine 
      if (mot) {
      	// this will not hurt and may save our life ;-)
      	if (strlen(mot)) {
      		while (*mot)
      			sum += *mot++;
      		return ((sum & 63) + ' ');
      	}
      }
      return 0;
      

      }

      /* ======================================================================
      Function: initSimuTrame
      Purpose :
      Input :
      Output : -
      Comments: -
      ====================================================================== */
      int cptChar = 500;
      unsigned long cpt = 0; //max:4294967295
      #define END_STR '\0' // End of group
      #define NBCHAR 23
      #define NBCHAMP 17

      //options supplémentaire du compilateur, ajouter -fpermissive

      //ATTENTION a tabnames de webserver.cpp si version LibTeleinfo-syslog.zip
      char TRAME[][NBCHAR] = { "\x02\0","\rADCO 039801172264 \0", "\rOPTARIF BBR* \0", "\rISOUSC 45 \0",
      "\rBBRHCJB 008078393 \0", "\rBBRHPJB 015766489 \0", "\rBBRHCJW 001256887 \0",
      "\rBBRHPJW 002075407 \0", "\rBBRHCJR 000153905 \0", "\rBBRHPJR 000532607 \0",
      "\rPTEC HCJW \0", "\rDEMAIN BLEU \0", "\rIINST 001 \0","\rIMAX 025 \0",
      "\rHHPHC Y \0","\rMOTDETAT 000000 \0","\x03\0" };
      void initSimuTrameTempo(void)
      {
      for (int i = 1; i < NBCHAMP - 1; i++)
      {
      TRAME[i][0] = TINFO_SGR;
      for (int j = 0; j <NBCHAR; j++)
      {
      if (TRAME[i][j] == END_STR)
      {
      TRAME[i][j] = calcChecksum(&TRAME[i][1]); //CRC
      TRAME[i][j + 1] = TINFO_EGR;
      TRAME[i][j + 2] = END_STR;
      break;
      }
      }
      }
      }
      void emetTrameTempo(void)
      {
      char Etiq[] = "ADCO";
      //mise a jour du compteur
      char buffer[13];
      sprintf(buffer, "%012u", cpt);
      for (int i = 0; i < 12; i++)
      TRAME[1][i + 6] = buffer[i];
      TRAME[1][19] = tinfo.calcChecksum(&Etiq[0], &buffer[0]);
      //emission d'une trame complète
      for (int i = 0; i < NBCHAMP; i++)
      {
      for (int j = 0; j < NBCHAR; j++)
      {
      if (TRAME[i][j] != END_STR)
      Serial1.write(TRAME[i][j]);
      else
      break;
      }
      delay(10);//tempo inter champ
      }
      cpt += 1; //pas de test de débordement...
      delay(10);//tempo intertrame
      }

      #endif //SIMUTRAMETEMPO

      #ifdef SIMUTRAMETEMPO
      //dans setup juste avant Init teleinfo
      Serial1.begin(1200, SERIAL_7E1);
      Serial1.setRxBufferSize(1024);
      initSimuTrameTempo();
      #endif // SIMUTRAMETEMPO

      #ifdef SIMUTRAMETEMPO
      //au début de loop
      cptChar += 1;
      if(cptChar>=500)
      {
      emetTrameTempo();
      cptChar = 0;
      }
      #endif //SIMUTRAMETEMPO

      1 Reply Last reply
      • M Offline
        M Offline
        mjeanne
        wrote on last edited by
        #3

        Bonjour,

        c'est pas con un mode débug. L'idéal serait de pouvoir l'activer depuis l'interface web, et sans modification de cablage. Cela permettrait en cas de soucis de faire un debug plus simple. Sur d'autres forums, certains se plaignent de ne pas recevoir de trames, ce mode permettrait déjà de savoir si le soucis est coté compteur ou coté ordinateur.

        1 Reply Last reply
        • M Offline
          M Offline
          Marco40
          wrote on last edited by
          #4

          Bonjour
          C'est toujours possible mais il faudrait prévoir un relais pour commuter l'entrée série entre la liaison teleinfo ou la simulation.

          1 Reply Last reply
          • M Offline
            M Offline
            mjeanne
            wrote on last edited by
            #5

            non, c'est juste en sortie que ça devrait se jouer. Selon une option dans l'interface web, on pourrait choisir d'avoir les données réelles ou des données simulées.
            Si on a une box domotique derrière qui ne reçoit rien, le mode debug permettrait de savoir si le soucis est en amont ou en aval de l'esp

            M 1 Reply Last reply
            • M mjeanne

              non, c'est juste en sortie que ça devrait se jouer. Selon une option dans l'interface web, on pourrait choisir d'avoir les données réelles ou des données simulées.
              Si on a une box domotique derrière qui ne reçoit rien, le mode debug permettrait de savoir si le soucis est en amont ou en aval de l'esp

              M Offline
              M Offline
              Marco40
              wrote on last edited by
              #6

              @mjeanne
              Vous parlez-donc d'une version wifinfo modifiée? qui réémet les informations reçues de Rx serial vers Tx serial1 au profit d'une box domotique.

              1 Reply Last reply

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              0

              Online

              5.8k

              Users

              565

              Topics

              5.3k

              Posts

              Top Topics

              Popular Tags

              teleinfo
              25 topics
              arduino
              19 topics
              remora
              16 topics
              esp8266
              10 topics
              arduipi
              10 topics
              raspberry
              8 topics
              wifinfo
              7 topics
              broadcast
              7 topics
              Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB
              • Login

              • Don't have an account? Register

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