Community Forum
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. Marco40
    3. Posts
    M
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 17
    • Groups 0

    Posts

    Recent
    • RE: Implémentation Tarifs EDF

      Bonjour

      C'est en grande partie ce que je fait dans mon application
      piloteVmc

      Dans lequel j'ai modifié le logiciel Teleinfo qui affiche les courbes tempo avec le logiciel Hignchart Highstock.

      Marc

      posted in Téléinfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      Bonjour

      J'ai mis mon projet complet sur github qui utilise la libTeleinfo de Charles, ça peux peut-être servir pour d'autres applications.

        le lien est:  (https://github.com/marco402/piloteVMC.git)
      

      Marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      as-tu remplacé sizeof(tabNames) par 38 ?
      Marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      J'ai ajouté un test dans build_emoncms_json au cas ou on a jamais reçu de message teleinfo , dans ce cas j'avais un reboot par le watchdog.

          if(! first_item) 
            // go to next node
           me = me->next;
         //marc
         else
      	   if (me->free) {
      		   //1st item is free : empty list !
      		   Debugln("Teleinfo list is empty !");
      		   break;
      	   }
         //fin marc
          if( ! me->free ) {
      

      C'est le code qui était déjà dans tinfoJSONTable.

      Il faudra voir pour httpRequest si tu as encore un soucis et pour jeedomPost.

      J'ai dimensionné le tableau à 400 et j'ai mis ta modif String(atol(me->value)).

      Github est à jour.

      Marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      Il y a un autre problème, le buffer dimensionné à 136 est trop petit avec les variables ajoutées, je l'ai passé de 136 à 300.

      webClient-->httpPost -->char buffer[300];

      marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      Bonjour Pierre

      J'ai fait une erreur dans la dernière version:
      en fin de webClient.cpp fonction validate_value_name
      Il faut que tu remplace sizeof(tabNames) par 38 ou la nouvelle taille du tableau tabName si tu ajoute des champs(ce que j'ai fait dans la dernière version pour les 4 champs que tu avait indiqué).
      J'ai ajouté par sécurité un ESP.wdtFeed(); en début de build_emoncms_json.

      marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      @mangoose
      Bonjour Pierre

      J'ai corrigé sur Github et j'ai ajouté une classe myTinfo pour sortir les fonctions de Wifinfo.ino.

      Pour ton problème, est-ce lié à ma version ?
      Est ce que le reboot se fait sur l'initialisation ?
      As tu des messages console au moment du reboot (watchdog...)?

      Marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      @mangoose

      Bonjour Pierre,
      Je pense que c'est normal, j'ai bien précisé que le mode standard est à terminer (je n'ai pas encore le linky pour essayer).
      Marc

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      @Marco40
      Bonjour
      J'ai mis une version de Wifinfo/Libteleinfo réorganisée sur github:
      https://github.com/marco402/LibTeleinfo/tree/rewrite-Wifinfo.

      -Je n'ai pas re testé:
      -Les sorties leds(leds.cpp et leds.h),j'ai conservé les fonctions d'origine mais j'ai une autre version avec des leds APA106.
      -Les sortie emoncms,jeedom et httpRequest, fonctions qui sont d'origine à la mise en place des classes près.

      posted in WifInfo
      M
      Marco40
    • RE: Ré-écriture de Wifinfo pour traiter le mode standard du Linky

      Bonjour Charles
      Je ne sais pas ou vous en êtes dans la réécriture du code, j'ai remanié entièrement wifinfo pour une application perso,
      je pense la mettre plus tard sur github. Je peux déjà vous l'envoyer si ça vous intéresse.
      J'ai mis en place les classes:
      les fonctionnalités présentes dans wifinfo
      -myWifi ajout start stop wifi horaire paramétrés par l'interface web
      -myOta
      -webClient
      -webServer
      -config
      -LibTeleinfo mode standard à terminer(j'ai pas encore le linky)
      -mySyslog version de Dominique DAMBRAIN 2017-07-10
      -ledRGBSerial (pour des APA106)
      ajout
      -myNTP mise à l'heure datation
      -simuTempo simulation de trames tempo (historique)
      -enregistrement enregistrement d'informations (compteur couleur imax...)

      ajouts pour mon application qui pilote la vmc et affiche les couleurs tempo et jour/nuit
      -vmc
      -interRelais
      -buzzer
      -canBus liaison vers un module d'affichage commande + capteur déporté st7735
      -capteur
      -ta12 surveillance du courant vmc
      -dht
      -smt160

      le programme principal
      traitement_tempo.ino

      posted in WifInfo
      M
      Marco40
    • RE: Procédure mise à jour sans fil (OTA) pour WifInfo

      Bonjour

      J'ai fait une modification pour transférer les fichiers spiffs en OTA à partir de la page html car j'avais une erreur.
      J'ai peut-être un problème de version, je met le code de la modification si ça peux servir:

      	//ajout pour spiffs
      	int command = U_FLASH;
      	if (strstr(upload.filename.c_str(), "spiffs"))
      	{
      		command = U_SPIFFS;
      		//Debugln("command = U_SPIFFS");
      	}
      	//else
      		//Debugln("command = U_FLASH");
      
      
      
      	if (!Update.begin(maxSketchSpace,command))--->ligne 694 modifiée de Wifinfo.ino.
      
      posted in WifInfo
      M
      Marco40
    • RE: Lecture du Linky via le port série de l'esp8266 .. des particularités ?

      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;
      }
      }

      posted in WifInfo
      M
      Marco40
    • RE: Vends kit REMORA 1.3

      Bonjour

      Si vous les avez encore, pouvez-vous préciser la liste des composants qu'il manque pour faire fonctionner le kit et à quel prix?

      Merci

      posted in Remora
      M
      Marco40
    • RE: Simulation de trames teleInfo par WinInfo.ino

      @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.

      posted in WifInfo
      M
      Marco40
    • RE: Simulation de trames teleInfo par WinInfo.ino

      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.

      posted in WifInfo
      M
      Marco40
    • RE: Simulation de trames teleInfo par WinInfo.ino

      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

      posted in WifInfo
      M
      Marco40
    • Simulation de trames teleInfo par WinInfo.ino

      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%)

      posted in WifInfo
      M
      Marco40